C# Web应用在某些电脑IIS上部署运行,读取当前时间带有中文,比如2018-5-1 星期一 上午 12:00:00,虽然使用Format转换可以解决,但代码量较大难免遗漏,会引发问题,为了解决该问题在服务器上尝试使用如下办法:
(1)重置区域时间格式,不起作用
(2)在Regedit里如下设置,搜索所有的sDate,后面带dddd的去掉,tt 的去掉tt,
注意:tt不去掉的话会有上午,下午;通过该方法可行,但会有同一个机器上一个程序池可以,另一个程序池不行的情况。
(3)使用如下代码,可行,一个一个页面设置,或者放到protected void Application_BeginRequest(Object sender, EventArgs e)也可以,不过感觉还是有点不安全。
System.Globalization.CultureInfo myCI = new System.Globalization.CultureInfo("zh-CN", true);
myCI.DateTimeFormat.LongDatePattern = "yyyy-MM-dd";
myCI.DateTimeFormat.LongTimePattern = "HH:mm:ss";
myCI.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
myCI.DateTimeFormat.ShortTimePattern = "HH:mm:ss";
System.Threading.Thread.CurrentThread.CurrentCulture = myCI;
(4)强制使用日期
1、控制面板--区域和语言选项--把时间设置为24小时格式。
2、建立HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT\VarConversionLocaleSetting = 2 (DWORD)
3、重启IIS
但是在我电脑上依然不起作用
(5)终极大法,该方法彻底解决了问题
1、打开注册表,搜索所有的International
2、删除International目录,依次删除完毕
3、打开区域设置,重置,重启IIS,基本解决,但是依然会出现有的IIS 内存池还是中文问题。