为什么当我服务器的区域语言设置为英语(英国)时 Thread.CurrentThread.CurrentCulture.
本文关键字:英国 Thread CurrentCulture CurrentThread 英语 服务器 区域 设置 语言 为什么 | 更新日期: 2023-09-27 17:57:12
我有一个Web应用程序,它可以在不同点让用户输入日期,并向用户显示日期。 调试时(以及站点在我们的测试和暂存服务器上运行时),日期格式以 dd/mm/yyyy 格式显示(使用 DateTime.ToShortDateString() 时)。 这些服务器(和我的开发环境在 Windows 区域选项下将"英语(英国)"设置为语言。到目前为止一切都很好。但是,在实时服务器上,日期以 mm/dd/yyyy 格式显示,即使实时服务器仍将语言设置为"英语(United Kindgom)"。 我已经看到这个问题,它解释了如何以特定格式解析日期,我已经知道如何以所需的字符串格式(DateTime.ToString("dd/MM/yyyy")
)获取日期,但我想知道实时服务器上的其他操作系统设置导致这种差异?我也看过这个问题,但它似乎没有回答我的问题。
一些附加信息:关于开发、测试和过渡环境System.Threading.Thread.CurrentThread.CurrentUICulture.Name="en-US"System.Threading.Thread.CurrentThread.CurrentCulture.Name="en-GB"
在现场环境中System.Threading.Thread.CurrentThread.CurrentUICulture.Name="en-US"System.Threading.Thread.CurrentThread.CurrentCulture.Name="en-US"
您是否检查过web.config
的globalization
部分?
您可以像这样以声明方式设置它:
<globalization uiCulture="en-GB" culture="en-GB" />
请参阅:http://msdn.microsoft.com/en-us/library/bz9tc508.aspx
区域设置按用户应用,因此您需要确保更改 IIS 运行应用程序的任何用户的区域设置,例如网络服务。
看起来许多其他人已经搜索了执行此操作的方法(谷歌"IIS 更改区域设置")。看起来大多数人通过将设置黑客入侵注册表的适当部分(在 HKEY_USERS'IUSR-SID'Control Panel'International
下)来实现它
当然,您可以在 Begin Request 事件中覆盖它。
但真正的根本原因是Windows没有本地化为英语。我们得到美式英语:en-GB 没有资源本地化,因此此设置避免了对 en-GB 资源立即回退到 en-US 的大量失败查找。
尝试检查实时服务器上使用的区域设置。 查看以下链接了解更多详情
http://www.java.com/en/download/help/locale.xml
您可能还需要检查浏览器中列出的语言优先级。
问候