StrToDateTime在 Delphi 11中被破坏了吗?

aydmsdu9  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(141)

在 Delphi 10.4及更早版本中,我们可以使用自定义格式设置调用StrToDateTime,然后String将被解析。11.3不再是这样了。
我得到了以下异常:
Project X.exe引发异常类EConvertError,消息为“2023 -05-12 12:11:10”不是有效的日期和时间。
问题演示:

procedure ConvertDate;
var
  lFormatSettings: TFormatSettings;
  lDate: TDateTime;
begin
  lFormatSettings := TFormatSettings.Create();
  lFormatSettings.DateSeparator := '-';
  lFormatSettings.TimeSeparator := ':';
  lFormatSettings.ShortDateFormat := 'yyyy-mm-dd hh:nn:ss';

  lDate := StrToDateTime('2023-05-12 12:11:10', lFormatSettings);  // <-- EConvertError Exception
end;

有人知道解决这个问题的方法吗?

snz8szmq

snz8szmq1#

您只需要在 ShortDateFormat 中指定日期部分。时间部分进入 LongTimeFormat

相关问题