我使用该函数的返回值填充Delphi 7下的TStringList:
function dateTime2str(td : TDateTime) : string;
var
iformatsettings : tformatsettings;
begin
GetLocaleFormatSettings(LOCALE_USER_DEFAULT, iformatsettings);
result := DateTimeToStr(td, iFormatSettings);
end;
然后我用该函数读取TStringList的每个值:
function str2DateTime(s : string) : TDateTime;
var
iformatsettings : tformatsettings;
begin
GetLocaleFormatSettings(LOCALE_USER_DEFAULT, iformatsettings);
result := strtodatetime(s,iFormatSettings);
end;
但它会触发EConvertError异常: '6/7/12 3:02:31 AM'不是有效的日期和时间。
为什么?
非常感谢
答案 0 :(得分:0)
通过使用FormatDateTime,您知道日期和时间的确切格式,因此当您检索它时,它将完全相同,而不是取决于区域设置配置。
如果第一个功能在一台计算机上运行,而第二个功能在另一台计算机上运行,那么使用第一种方法仍会遇到问题。