Delphi使用StrToDatetime在不同操作系统出现不同的情况(控制面板的时间格式都记录在注册表里,因此也可修改注册表)

 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

 可以通过 控制面板---->区域设置------->日期----->短日期样式  查看

为了程序有更好的兼容性,可以进行注册表修改 
HKEY_CURRENT_USER/Control   Panel/International其中的sDate项将其值强制设置成'/',

这个办法不是非常好,最好的是程序做判断,适应系统,而不是更改系统设置来适应程序

http://blog.csdn.net/missmecn/article/details/5870591

原文地址:https://www.cnblogs.com/findumars/p/5290022.html