使用c#从系统获取当前时间格式的问题

时间:2013-07-18 15:31:53

标签: c#

string dateFormate = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;

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

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

string timeFormate = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;

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

enter image description here

3 个答案:

答案 0 :(得分: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)

未尝试,仅参考

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

REF:  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

由于

答案 1 :(得分:0)

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

它是否适用于CultureInfo.InstalledUICulture?

答案 2 :(得分: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,如屏幕截图所示。

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