4

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

  • 短时间:H.mm
  • 长时间: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,还是没有效果。

注意 - 这个问题是作为错误的一部分提出的,我们忘记为 DateTime.ToString() 包含 InvariantCulture,然后应该由 JSON 反序列化器对其进行解析。(有这个问题的人有一些不同的时间格式分隔符)。

解决重新创建 CultureInfo 的问题不是我正在寻找的东西,我只是想看看原因,因为我无法以任何方式重现该问题。

4

1 回答 1

8

The problem is that the Regional Settings are user specific. You changed them for you, but the site runs as a different user (see the app-pool in IIS)

于 2012-11-30T12:43:11.667 回答