【问题标题】:CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern broken in .Net 3.5?CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern 在 .Net 3.5 中损坏?
【发布时间】:2012-03-02 11:53:58
【问题描述】:

在 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 格式,但短格式似乎使用“英语(美国)”的默认值。

我是否忽略了什么?

【问题讨论】:

  • .NET 对自定义格式的支持与 Windows 支持不同步。它需要支持 Windows 98 和 2000 等旧操作系统,这是不可避免的。Windows 7 和 .NET 4 都已解决。进展。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2012-02-18
    相关资源
    最近更新 更多