我想以美国格式返回这个短日期,我的应用程序的当前文化是en-GB
,但我想在en-US
中使用它。
这是我到目前为止的代码:
DateTime.Now.AddYears(-2).ToShortDateString();
答案 0 :(得分:4)
您需要确保使用正确的文化格式字符串才能实现此目的。
直接从文化中获取此格式的一种方法是:
CultureInfo.GetCultureInfo("en-US").DateTimeFormat.ShortDatePattern
对我来说,这会返回M/d/yyyy
。
var usShortDatePattern =
CultureInfo.GetCultureInfo("en-US").DateTimeFormat.ShortDatePattern;
DateTime.Now.AddYears(-2).ToString(usShortDatePattern);
这样做的好处是,如果用户在其控制面板(区域和语言)中覆盖了en-US
的短日期模式,他们将获得他们想要的格式。
答案 1 :(得分:2)
DateTime.Now.AddYears(-2).ToString("d", new CultureInfo("en-US"));
答案 2 :(得分:1)
使用.ToString()
扩展方法并输入格式:
DateTime.Now.AddYears(-2).ToString("M/d/yyyy");
自定义日期格式选项在此处记录:
答案 3 :(得分:1)
var culture = new CultureInfo("en-us");
string formatedDate = DateTime
.Now
.AddYears(-2)
.ToString(culture.DateTimeFormat.ShortDatePattern, culture);
答案 4 :(得分:1)
“我想应用en-US短日期模式”:
DateTime.Now.AddYears(-2).ToString("d", CultureInfo.GetCultureInfo("en-US"));
“我想应用模式M / d / yyyy,无论.NET是否认为这是en-US的短模式:
DateTime.Now.AddYears(-2).ToString(@"M\/d\/yyyy", CultureInfo.InvariantCulture)
(与上面的结果相同,但如果您认为“美国格式”实际上是MM / dd / yyyy,也在美国使用,那么这就是您想要的方法,但{{1而不是@"MM\/dd\/yyyy"
。
最后,“我想找出与其他电话一起使用的en-US短日期模式:
@"M\/d\/yyyy"