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
可以通过 控制面板---->区域设置------->日期----->短日期样式 查看
我用通过增中一个函数获取系统默认的日期分隔符,以自动适应不同操作系统。
//增加函数获取分隔符,实现自动替换
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;