Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么Thread.CurrentThread.CurrentCulture.Name显示为";“美国”;当我的服务器';s地区语言设置为英语(英国)_C#_Asp.net_Datetime - Fatal编程技术网

C# 为什么Thread.CurrentThread.CurrentCulture.Name显示为";“美国”;当我的服务器';s地区语言设置为英语(英国)

C# 为什么Thread.CurrentThread.CurrentCulture.Name显示为";“美国”;当我的服务器';s地区语言设置为英语(英国),c#,asp.net,datetime,C#,Asp.net,Datetime,我有一个Web应用程序,它在不同的点上让用户输入日期,并向用户显示日期。调试时(以及站点在测试和暂存服务器上运行时),日期格式以dd/mm/yyyy格式显示(使用DateTime.ToShortDateString()时)。这些服务器(以及我的开发环境)在windows区域选项下设置了“英语(英国)”作为语言。到目前为止一切正常。但是,在实时服务器上,日期以mm/dd/yyyy格式显示,即使实时服务器的语言仍设置为“英语(英国)”。我已经了解了如何以特定格式解析日期,并且我已经知道如何以所需的字

我有一个Web应用程序,它在不同的点上让用户输入日期,并向用户显示日期。调试时(以及站点在测试和暂存服务器上运行时),日期格式以dd/mm/yyyy格式显示(使用DateTime.ToShortDateString()时)。这些服务器(以及我的开发环境)在windows区域选项下设置了“英语(英国)”作为语言。到目前为止一切正常。但是,在实时服务器上,日期以mm/dd/yyyy格式显示,即使实时服务器的语言仍设置为“英语(英国)”。我已经了解了如何以特定格式解析日期,并且我已经知道如何以所需的字符串格式获取日期(
DateTime.ToString(“dd/MM/yyyy”)
),但我想知道,live server上的其他操作系统设置是什么导致了这种差异? 我也看过,但它似乎没有回答我的问题

一些附加信息:关于开发、测试和登台环境 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" />


请参阅:

尝试检查live server上使用的区域设置。有关详细信息,请查看下面的链接

您可能还需要检查浏览器中列出的语言优先级


关于

区域设置以每个用户为基础应用-因此您需要确保更改IIS运行应用程序的任何用户的区域设置,例如网络服务


看起来很多其他人都在寻找实现这一点的方法(谷歌“IIS更改区域设置”)。看起来大多数人都是通过将设置侵入注册表的适当部分(在
HKEY_USERS\IUSR-SID\Control Panel\International
下)来实现这一点的。

当然,您可以在Begin请求事件中覆盖这一点


但真正的根本原因是Windows没有本地化为英语。我们使用的是美式英语:没有对en GB的资源本地化,因此此设置避免了对en GB资源的大量失败查找立即返回到en US。

Aah对,只是检查了一下,没有。我在
下添加了
,并且现在似乎可以了。谢谢!这个问题是关于ASP.NET的,不是关于Java的。这里有更多的信息