首页 > 解决方案 > CultureInfo 根据计算机设置更改

问题描述

我正在本地机器和远程服务器上通过 IIS 运行 .NET 5 MVC Web 应用程序。

我注意到一个奇怪的错误,计算机的本地设置似乎会影响CultureInfo课程的结果

在 Windows 10 中,如果我打开Settings > Time & Language > Region,然后单击Change data formats以使我的 Short time 为 24 小时,即 13:40 与 1:40 PM,那么结果CultureInfo也会改变。我一直认为更改我的计算机设置不应该影响构建在文化中的 .NET,并且无论代码运行在哪台计算机上,它们都应该是相同的,所以:

CultureInfo.CreateSpecificCulture("en-US");

CultureInfo无论代码在哪台计算机上运行或用户决定使用什么日期和时间设置,都应该返回相同的对象。

我最初想知道我是否使用了CultureInfo错误的类,所以我也尝试了:

new CultureInfo("en-US");

但结果是一样的。

有没有办法告诉CultureInfo班级使用文化的默认值,而不是使用我当前在计算机上的设置?

标签: c#.netasp.net-mvcdatetimeasp.net-core

解决方案


var culture = new CultureInfo("en-US", false);

构造函数的第二个参数(useUserOverride)就是这个意思。

  • true 使用系统设置
  • false 使用默认的文化设置

推荐阅读