Delphi 11.3中StrToDateTime解析异常?求可行解决方案
解决Delphi 11.3中StrToDateTime自定义格式解析失效的问题
问题原因
Delphi 11及后续版本对StrToDateTime的格式校验逻辑做了调整,不再允许将日期和时间格式合并写入ShortDateFormat,必须分别指定独立的日期格式与时间格式。
可行解决办法
修改TFormatSettings的配置,拆分日期与时间格式的设置:
- 将日期部分单独赋值给
ShortDateFormat - 将时间部分赋值给
LongTimeFormat(若时间字符串为短格式如hh:nn,可改用ShortTimeFormat)
调整后的代码示例:
procedure ConvertDate; var lFormatSettings: TFormatSettings; lDate: TDateTime; begin lFormatSettings := TFormatSettings.Create(); lFormatSettings.DateSeparator := '-'; lFormatSettings.TimeSeparator := ':'; lFormatSettings.ShortDateFormat := 'yyyy-mm-dd'; // 仅配置日期格式 lFormatSettings.LongTimeFormat := 'hh:nn:ss'; // 单独配置时间格式 lDate := StrToDateTime('2023-05-12 12:11:10', lFormatSettings); end;
内容的提问来源于stack exchange,提问作者kkrajnc
相关产品推荐
相关产品推荐

