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

前端之家收集整理的这篇文章主要介绍了ASP.NET应用程序不反映区域设置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经在我的区域设置(捷克语,文化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的问题并不是我想要的,我只是想看看原因,因为我无法以任何方式重现问题.

解决方法

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

猜你在找的asp.Net相关文章