我在英国服务器上安装了ac#assembly(使用Visual Studio 2005编写的.net 2.0)时遇到问题,应该使用英国区域设置.
我的代码所做的是将dd/MM/yyyy格式的日期转换为utc.即yyyy-mm-dd.问题出现在16/02/2010等日期,组件无法转换日期并返回错误.调试后我意识到,由于一个奇怪的原因,System.CultureInfo返回的CultureInfo是en-US.
我可以使用以下方式编程更改这些设置:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB", false);
Run Code Online (Sandbox Code Playgroud)
我的代码工作正常.
但是我不想一直这样做,因为我的系统应该是英国.不是我们.那么,如何将.Net框架的默认文化更改为默认en-GB而不是en-US?
有关信息:
编辑:
关于上下文的一些额外细节.有问题的程序集是通过COM interop从作为COM +应用程序运行的本机C++第三方组件调用的.
我有一个 CLR .NET dll 和 SQL 服务器。系统本地设置(Region/administrative/locallanaguagesettings)从 en-IN 更改为 en-US。但是用 Thread.CurrentThread.CurrentCulture 追踪的 CLR 中的文化仍然是 en-IN
选择@@Language 打印 englishUS
SQL 服务器从哪里为 CLR 文化选择文化?最后一个问题,如何通过系统设置 SQL CLR 程序集中使用的区域性来更改?
在我在 Win 10 下修改 PS 5.1 期间,与问题的目标完全更改当前 PowerShell 会话的语言(包括文化)相关,\n我遇到了几个相关问题。
\n与 UICulture 关联的 Windows 设置在哪里?\n我没有找到“区域和语言”控制面板的“键盘和语言”选项卡,如此处所示。
\n这可以在 PS 中持续更改吗?\n到目前为止我发现的所有内容都只保留在会话中。
\n设置设置- >时间和语言->语言-> Windows 显示语言显示“Espa\xc3\xb1ol (Espa\xc3\xb1a)”,PS 给出
\n> Get-UICulture ; [System.Threading.Thread]::CurrentThread.CurrentUICulture ; [CultureInfo]::CurrentUICulture ;\nLCID Name DisplayName\n---- ---- -----------\n1033 en-US English (United States)\n1033 en-US English (United States)\n1033 en-US English (United States)\nRun Code Online (Sandbox Code Playgroud)\n没有任何干预更改并且在刚刚启动的会话中。
\n