【问题标题】:ASP.NET application doesn't reflect Regional settingsASP.NET 应用程序不反映区域设置
【发布时间】:2012-11-30 12:37:51
【问题描述】:

我已在我的区域设置(对于捷克语,文化 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,还是没有效果。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 是的,你是对的,我在你回复后一秒钟就意识到了 :-) 谢谢!
    • 我只是补充一点,设置是缓存的,所以在应用更改后重新启动 IIS 是必要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    相关资源
    最近更新 更多