c# - 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
班级使用文化的默认值,而不是使用我当前在计算机上的设置?
解决方案
var culture = new CultureInfo("en-US", false);
构造函数的第二个参数(useUserOverride)就是这个意思。
- true 使用系统设置
- false 使用默认的文化设置
推荐阅读
- java - 如何在循环中存储用户的先前值?
- jsf - org.omnifaces.cdi.push.SocketChannelManager$ViewScope 不能转换为 com.sun.faces.push.WebsocketChannelManager$ViewScope
- c# - 实现依赖注入和接口的问题
- google-apps-script - 如何使用谷歌目录中的数据通过谷歌表单更改电子邮件签名
- prestashop - Prestashop:如何重新生成制造商的徽标
- reactjs - 我在那个前端有一个项目,他们使用了 React JS 和后端 Lumen 应用程序,但我找不到任何相关信息
- string - 如何在 Haskell 中处理更复杂的连音?
- azure - Azure 数据资源管理器 - 连续数据导出 AAD 令牌生成过程
- multidimensional-array - 多维随机绘制,无需用 pytorch 中的“预绘制”样本替换
- amazon-web-services - 确认后触发器 - 当确认用户注册时,在 S3 存储桶中创建文件夹