TService 程序中字符串转日期出错! 本帖最后由 hwkuan 于 2010-08-26 12:44:27 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 RootKey:HKEY_CURRENT_USERKey:Control Panel\InternationalValue:sDate在Win7中调用StrToDateTime('2009-1-1 1:1:1')时会报错,检查了下发现Win7默认的日期间隔改成‘/’了,而XP里是‘-’,这个值存入在注册表中,调用前转换下即可 可以在你程序开始的时候,比如在你MainForm的Create事件中加入如下代码,就不用手动去更改系统的时间格式了 DateSeparator:='-'; TimeSeparator:=':'; ShortDateFormat:='yyyy-mm-dd'; ShortTimeFormat:='HH:mm:ss'; 问题是在TService程序中不能转! 在程序启动时使用下面的代码SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,'yyyy-MM-dd');SetLocaleInfo(LOCALE_USER_DEFAULT,locale_sTimeFormat,'HH:mm:ss');SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_S1159,'');SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_S2359,'');但是有个问题,如果你的程序运行的过程中有别的程序又把你的系统时间格式改了,你的程序又会出错 恩 转之间 系统日期格式已经调过来了。 问题是 VCL Application程序中能正常转换,但是 TService程序中转换错误。 日期格式已经改成 yyy-MM-dd了前面少了一个y 问题中打字错误。 改成yyyy-MM-dd.tjianliang 真细心。不过真是奇怪了。难道TService程序另有玄机 调用StrToDateTime函数前执行 DateSeparator:='-'; TimeSeparator:=':'; ShortDateFormat:='yyyy-MM-dd'; ShortTimeFormat:='HH:mm:ss'; 也不行?不会吧 我尝试跟踪了下,TService程序中 ScanToNumber 进去后就不执行直接跳出为什么会这样呢 我汗!! 原来服务程序加载的是这个HKEY_USERS\.DEFAULT\Control Panel\International里面的。(goodhj)的方法,又试了下确实可行。 如何标识DELPHI中的TreeView的某一个节点?? delphi如何根据字段长度设置excel列宽 求excel的delph编程资料 小问题 TreeView控件的几个属性问题 关于TREEVIEW里任意节点的拖曳如何设置及编写代码! delphi性能调试 如何去掉OICQ的广告 怎么可以在TEdit中输入管字符,例如一些算术,比如欧姆?Thanks A lot!!!! delphi与bcb比学哪个好 这段语句执行时候为什么会出错,该如何修改? form2.show后出错
Key:Control Panel\International
Value:sDate在Win7中调用StrToDateTime('2009-1-1 1:1:1')时会报错,检查了下发现Win7默认的日期间隔改成‘/’了,而XP里是‘-’,这个值存入在注册表中,调用前转换下即可
TimeSeparator:=':';
ShortDateFormat:='yyyy-mm-dd';
ShortTimeFormat:='HH:mm:ss';
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,'yyyy-MM-dd');
SetLocaleInfo(LOCALE_USER_DEFAULT,locale_sTimeFormat,'HH:mm:ss');
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_S1159,'');
SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_S2359,'');
但是有个问题,如果你的程序运行的过程中有别的程序又把你的系统时间格式改了,你的程序又会出错
tjianliang 真细心。不过真是奇怪了。难道TService程序另有玄机
DateSeparator:='-';
TimeSeparator:=':';
ShortDateFormat:='yyyy-MM-dd';
ShortTimeFormat:='HH:mm:ss';
也不行?不会吧
里面的。
(goodhj)的方法,又试了下确实可行。