我在本地计算机和远程服务器上通过 IIS 运行 .NET 5 MVC Web 应用程序。
我注意到一个奇怪的错误,计算机的本地设置似乎会影响 CultureInfo
类的结果
在 Windows 10 中,如果我打开 Settings > Time & Language > Region
,然后单击 Change data formats
,这样我的短时间就是 24 小时,即 13:40 vs 1:40 PM,那么 CultureInfo
的结果也会改变。我一直认为更改我的计算机设置不应该影响构建在文化中的 .NET,并且无论代码在哪台计算机上运行,它们都应该是相同的,所以:
CultureInfo.CreateSpecificCulture("en-US");
无论代码在哪台计算机上运行或用户决定使用什么日期和时间设置,都应该返回相同的 CultureInfo
对象。
我最初想知道是不是我使用的 CultureInfo
类有误,所以我也尝试了:
new CultureInfo("en-US");
但结果是一样的。
有什么方法可以告诉 CultureInfo
类使用文化的默认值,而不是使用我计算机上当前的设置?
最佳答案
var culture = new CultureInfo("en-US", false);
constructor的第二个参数(useUserOverride) 就是这个意思。
- 真正使用系统设置
- false 使用默认文化设置
关于c# - CultureInfo 根据计算机设置更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66804391/