ASP.NET应用程序不反映区域设置

时间:2012-11-30 12:37:51

标签: asp.net .net globalization regional-settings

我已经在我的区域设置(捷克文化cs-CZ)中设置了以下短时间/长时间模式:

  • 时间短:H.mm
  • 很长时间:H.mm.ss

Settings

我正在尝试在C#应用程序中使用这些设置。 在以下控制台应用程序中,一切正常:

使用System; 使用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的问题不是我正在寻找的问题,我只是想看看原因,因为我无法以任何方式重现问题。

1 个答案:

答案 0 :(得分:7)

问题是区域设置是特定于用户的。您为 you 更改了它们,但该网站以其他用户身份运行(请参阅IIS中的应用程序池)