我已经在我的区域设置(捷克语,文化cs-CZ)中设置了以下短时间/长时间模式:
>短时间:嗯
>好久不见:H.mm.ss
我正在尝试在C#应用程序中使用这些设置.
在以下控制台应用中,一切正常:
使用系统;
使用System.Globalization;
class Program { static void Main() { Console.WriteLine(CultureInfo.CurrentCulture.Name); Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern); Console.ReadLine(); } }
正如我想的那样,输出如下:
cs-CZ H.mm.ss
我创建了ASP.NET应用程序,令我惊讶的是,它没有反映出这一点.
最小的例子:
<%@ Page Language="C#" %> <%= System.Globalization.CultureInfo.CurrentCulture.Name %><br /> <%= System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern %>
输出:
cs-CZ H:mm:ss
我试过重启,.NET2.0,.NET4.0,仍然没有效果.
注意 – 这个问题是bug的一部分,我们忘记在DateTime.ToString()中包含InvariantCulture,然后由JSON反序列化器解析. (有这个问题的人有一些不同的时间格式分隔符).
修复重新创建CultureInfo的问题并不是我想要的,我只是想看看原因,因为我无法以任何方式重现问题.