0
string dateFormate = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;

使用上面的代码,每当我更改系统中的日期格式时,我都可以获得当前的系统日期格式。

例如:如果我更改日期格式,如 yy/MM/dd。我可以得到与结果相同的格式。但我无法获得正确的当前时间格式。即使我在系统中设置了类似hh:mm tt的日期格式,我总是得到格式h:mm tt

string timeFormate = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;

下图显示了我可以更改系统日期和时间格式的位置。

在此处输入图像描述

4

3 回答 3

0

来自 MSDN

http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.shorttimepattern.aspx

/*
This code produces the following output.

 CULTURE    PROPERTY VALUE
  en-US     h:mm tt
  ja-JP     H:mm
  fr-FR     HH:mm

*/

提到 ShortTimePattern 将为 en-US 文化提供 h:mm tt,如屏幕截图所示。

这就是你得到这种行为的原因。

于 2013-07-18T15:56:42.220 回答
0

尝试

 DateTime result;


 if (DateTime.TryParse("31/1/2010", System.Globalization.CultureInfo.GetCultureInfo("en-gb"), 
        System.Globalization.DateTimeStyles.None, out result))
            MessageBox.Show(result.ToShortDateString());    
    else
            MessageBox.Show("Not in Great Britain format");    

更改 en-gb ot en-us。如果您想对正在运行的 appdomain 进行永久更改,请将 System.Globalization.CultureInfo.CurrentCulture 分配给 en-us 的 GetCulture

以下代码将在计算机中返回 ShortDateFormat

MessageBox.Show(Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern)

没试过,仅供参考

参考:http: //msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.datetimeformat.aspx

参考: http ://social.msdn.microsoft.com/Forums/windows/en-US/01ecfe69-519f-400e-b08b-fa8979a7409e/how-to-detect-datetime-format-on-computer

使用以下链接识别文化的 LCID:http: //msdn.microsoft.com/en-us/library/0h88fahh (VS.85).aspx

谢谢

于 2013-07-18T15:37:07.370 回答
0

我尝试了 CultureInfo 的不同文化。我得出的结论是,只有 InstalledUICulture 才能获得操作系统设置的更改。不过,我在 Windows 7 Pro 上尝试过。

它适用于 CultureInfo.InstalledUICulture 吗?

于 2013-07-18T15:48:31.623 回答