以美国格式返回日期

时间:2012-08-17 09:18:52

标签: c# asp.net globalization

我想以美国格式返回这个短日期,我的应用程序的当前文化是en-GB,但我想在en-US中使用它。

这是我到目前为止的代码:

DateTime.Now.AddYears(-2).ToShortDateString();

5 个答案:

答案 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)

取自documentation

DateTime.Now.AddYears(-2).ToString("d", new CultureInfo("en-US"));

答案 2 :(得分:1)

使用.ToString()扩展方法并输入格式:

DateTime.Now.AddYears(-2).ToString("M/d/yyyy");

自定义日期格式选项在此处记录:

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

答案 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"