2

我在 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”不是有效的日期和时间。

为什么 ?

非常感谢

4

1 回答 1

0

通过使用 FormatDateTime 您知道日期和时间的确切格式,因此当您检索它时,它将完全相同,而不是取决于语言环境配置。

如果第一个功能在一台计算机上运行,​​而第二个功能在另一台计算机上运行,​​则使用第一种方法仍然会遇到问题。

于 2012-07-06T17:43:53.377 回答