关于C# DateTime XP与WIN7时间格式兼容问题浅见

.Net技术 码拜 9年前 (2016-05-22) 1100次浏览
由于有个工程需要使用DB2数据库,而数据库表已经固定了时间格式”yyyy-MM-dd HH:mm:ss”,本来一直在XP下使用毫无问题,但是大家都知道现在XP的机器是用一台少一台,呵呵。多数用户都转WIN7 甚至WIN10了。当这个工程转到WIN7上,就出大麻烦了,访问数据库只要有时间字段的就出现报错。好吧,那就只有改程序咯,修改 DateTime.ToString( “yyyy-MM-dd HH:mm:ss” ) 或 DateTime.Date.ToString( “yyyy-MM-dd ” )貌似是最简单的。 但是大家想想哈,一个工程几百个子项目,用到这个时间语句的地方何止千处,一个个改还不得死人啊! 本人是懒人,想用懒人的方法解决,于是乎就有了下面的尝试。
以前没用 C#的时候有时候会用到获得和设置系统信息的API函数 GetLocaleInfo 和 SetLocaleInfo。 赶巧这里面有获得和设置短日期格式的方法。
1,获得设置短提起格式
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, _ShortDateFormat, 12);//获得短时间格式信息
SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, _ShortDateFormat);//设置短时间格式信息

是不是很简单,C#中自然也可以用这两个函数,只是这两个是kernel32.dll中的API函数,C#想要用只有引用:

…  代码很简单,但是很有用。只需要将这一段代码加入到启动主程序中就行了。
不知道算不算原创。估计不算,连本人这学渣都知道的事情,没道理学霸们不知道。呵呵!

它有一定的副作用。假如是专用的服务器是可以这样做。
原因一,是你的代码,会改变用户的时间格式,并影响到其他程序。
因此,不能排除其他程序会出现反常。
原因二,是不能排除其他程序,也改变时间格式,这时你的程序又不能正常工作。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于C# DateTime XP与WIN7时间格式兼容问题浅见
喜欢 (0)
[1034331897@qq.com]
分享 (0)