Str:= '2010-4-13 06:22:22'; StrToDateTime(Str); 现象:在WinXP, Win2003 都不会报错 **但是在Windows7,Windows Server 2008 上,报 ‘xxx’ is not a valid date and time 错误** 后来发现不同操作系统的默认的 短日期样式 是不同的 WinXP, Win2003 默认短日期样式是 xxxx-xx-xx Windows7, Windows Server 2008 默认短日期样式是 xxxx/x/xx 可以通过 控制面板---->区域设置------->日期----->短日期样式 查看 我用通过增中一个函数获取系统默认的日期分隔符,以自动适应不同操作系统。 <!--more--> //增加函数获取分隔符,实现自动替换 function GetDateFormat():string; var SysFrset: TFormatSettings; begin Result:=''; GetLocaleFormatSettings(GetUserDefaultLCID, SysFrset); Result:=SysFrset.DateSeparator; //DateSeparator当前系统日期分隔符 end; if Sa_GetFileCreateDatetime(filepath,2)<StrToDateTime('2019'+myspe+'10'+myspe+'13') then begin DeleteFile(filepath); end; Loading... Str:= '2010-4-13 06:22:22'; StrToDateTime(Str); 现象:在WinXP, Win2003 都不会报错 **但是在Windows7,Windows Server 2008 上,报 ‘xxx’ is not a valid date and time 错误** 后来发现不同操作系统的默认的 短日期样式 是不同的 WinXP, Win2003 默认短日期样式是 xxxx-xx-xx Windows7, Windows Server 2008 默认短日期样式是 xxxx/x/xx 可以通过 控制面板---->区域设置------->日期----->短日期样式 查看 我用通过增中一个函数获取系统默认的日期分隔符,以自动适应不同操作系统。 <!--more--> //增加函数获取分隔符,实现自动替换 function GetDateFormat():string; var SysFrset: TFormatSettings; begin Result:=''; GetLocaleFormatSettings(GetUserDefaultLCID, SysFrset); Result:=SysFrset.DateSeparator; //DateSeparator当前系统日期分隔符 end; if Sa_GetFileCreateDatetime(filepath,2)<StrToDateTime('2019'+myspe+'10'+myspe+'13') then begin DeleteFile(filepath); end; 最后修改:2019 年 11 月 09 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 支持就是力量