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

如何将TDateTime转换为TDate?Pascal开发技术问询

解决TDateTime转TDate的简便方法

在Delphi中,TDate本质是TDateTime的子类型,二者底层均以浮点数存储日期(整数部分代表日期,小数部分代表时间),转换操作非常直接:

  • 直接强制类型转换
    由于EncodeDate(2023, 10, 14)返回的TDateTime本身不含时间部分(小数位为0),直接强制转换为TDate即可:

    var
      MyDate: TDate;
    begin
      MyDate := TDate(EncodeDate(2023, 10, 14));
    end;
    
  • 处理带时间的TDateTime(可选)
    如果你的TDateTime包含时间部分,可先用Trunc函数截断小数位(即去除时间部分),再转换为TDate:

    var
      MyDateTime: TDateTime;
      MyDate: TDate;
    begin
      MyDateTime := EncodeDateTime(2023, 10, 14, 15, 30, 0, 0);
      MyDate := TDate(Trunc(MyDateTime));
    end;
    

TDate本身就是对TDateTime的类型约束,仅保留日期部分,因此强制转换是最简便的实现方式,无需额外复杂函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:05:54