在.Net 3.5中打破CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern?

时间:2012-02-09 23:26:39

标签: .net datetime .net-4.0 .net-3.5 cultureinfo

在Windows 7区域和语言设置中,我的整体“格式”设置为“英语(美国)”,但我的日期和格式的个人模式时间设置如下......

长日期:dddd, dd MMMM, yyyy

短日期:MM/dd/yyyy

很长时间:HH:mm:ss

时间短:HH:mm

当我运行以下内容时,针对.Net 4.0

static void Main(string[] args)
{
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongDatePattern);
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern);
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern);
}

我最终会得到你期望的结果,

dddd, dd MMMM, yyyy
MM/dd/yyyy
HH:mm:ss
HH:mm

但是,如果我针对.Net 3.5(或更低版本)运行它,我会得到:

dddd, dd MMMM, yyyy
MM/dd/yyyy
HH:mm:ss
h:mm tt

您会注意到长时间格式使用我选择的Windows格式,但是短格式似乎使用“英语(美国)”的默认格式。

我忽略了什么吗?

1 个答案:

答案 0 :(得分:1)

这似乎是.NET 3.5中的一个已知问题。请参阅Microsoft Connect反馈项:

http://connect.microsoft.com/VisualStudio/feedback/details/167791/datetime-now-tostring-t-not-following-custom-regional-settings

反馈包括建议的解决方法。