在 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;
有人知道解决这个问题的方法吗?
1条答案
按热度按时间snz8szmq1#
您只需要在 ShortDateFormat 中指定日期部分。时间部分进入 LongTimeFormat。