windows Service 2012 系统时间格式带中文
C# 获取DataTime.Now 显示 2019年4月23日 下午 10:03:00
导致转换格式失败,
因为 源码中写的是 DataTime.Now.ToString(); 输出 2019-4-23 下午 10:04:07
导致转换成 DataTime 类型的时候就报错了。
解决方案:
1.修改源代码。 DataTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”)
由于大部分代码都是通过反射改的,会导致工作量增加。所以采用第二种方法。
2.修改系统的注册表
这是我本机的注册表,是没问题的
但是线上的注册表是 台湾的 服务器,导致获取时间带 中文,所以我照着本地的配置修改成了这样,下图是台湾服务器的注册表
我修改了几个值,以下这些是默认值,修改成如上图所示的值 则就成功 了。
sTimeFormat:tt hh:mm:ss
sShortTime:tt hh:mm
sCountry:台湾
sLanguage:CHT
原始数据:
iTimePrefix:1
iNegCurr:1
iFirstDayOfWeek:6
iCountry:886
注:改了以上时间会导致C# 写入Cookie 的时候带上过期时间写入不进去的问题,目前只发现google浏览器会出现这种问题,其他浏览器可以获取。
改成如下格式则问题修复:
打开注册表快捷键, windows+R 在运行中输入 regedit 回车
以上如果不行,要配置修改系统时间格式,结合一起使用。