You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将无分隔符的格式化日期时间字符串转换为TDateTime?

处理无分隔符日期时间字符串(yyyymmddhhnnss)转TDateTime的方法

针对你遇到的无分隔符日期时间字符串转换问题,有几种高效的内置方法可以替代手动解析:

方法1:使用TDateTime.TryParseExact(Delphi XE8及以上版本)

这是最直观且安全的方式,直接指定目标格式即可完成转换,无需处理分隔符:

var
  TargetDT: TDateTime;
  DateTimeStr: string;
begin
  DateTimeStr := '20240520143025'; // 示例字符串
  // 使用不变格式设置避免系统区域影响
  if TDateTime.TryParseExact(DateTimeStr, 'yyyymmddhhnnss', TFormatSettings.Invariant, TargetDT) then
  begin
    // 转换成功,可使用TargetDT
  end
  else
  begin
    // 处理转换失败的情况
  end;
end;

方法2:自定义TFormatSettings配合StrToDateTime(兼容更多Delphi版本)

如果你的Delphi版本不支持TryParseExact,可以通过构造无分隔符的格式设置来实现:

var
  FS: TFormatSettings;
  TargetDT: TDateTime;
  DateTimeStr: string;
begin
  DateTimeStr := '20240520143025';
  FS := TFormatSettings.Create;
  FS.DateSeparator := ''; // 清空日期分隔符
  FS.TimeSeparator := ''; // 清空时间分隔符
  // 指定要匹配的格式字符串
  TargetDT := StrToDateTime(DateTimeStr, ['yyyymmddhhnnss'], FS);
end;

注意:此重载的StrToDateTime接受格式数组,你可以添加多个备选格式以提升兼容性。

这两种方法都不需要手动拆分字符串,利用Delphi内置的日期时间解析逻辑,效率和可靠性都优于手动解析。

内容的提问来源于stack exchange,提问作者happyNoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 19:03:10