我想以美国格式返回这个短日期,我的应用程序的当前文化是en-GB
,但我希望它是en-US
.
这是我到目前为止的代码:
DateTime.Now.AddYears(-2).ToShortDateString();
我想以美国格式返回这个短日期,我的应用程序的当前文化是en-GB
,但我希望它是en-US
.
这是我到目前为止的代码:
DateTime.Now.AddYears(-2).ToShortDateString();
您需要确保使用正确的文化格式字符串来实现这一点。
直接从文化中获取这种格式的一种方法是:
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
在其控制面板(区域和语言)中覆盖了短日期模式,他们将获得所需的格式。
取自文档:
DateTime.Now.AddYears(-2).ToString("d", new CultureInfo("en-US"));
使用.ToString()
扩展方法并输入格式:
DateTime.Now.AddYears(-2).ToString("M/d/yyyy");
此处记录了自定义日期格式选项:
var culture = new CultureInfo("en-us");
string formatedDate = DateTime
.Now
.AddYears(-2)
.ToString(culture.DateTimeFormat.ShortDatePattern, culture);
“我想应用 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,这也用于美国,那么这就是您想要的方法,但使用@"MM\/dd\/yyyy"
而不是@"M\/d\/yyyy"
.
最后,“我想找出用于另一个呼叫的 en-US 短日期模式:
CultureInfo.GetCultureInfo("en-US").DateTimeFormat.ShortDatePattern