如何将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
相关产品推荐
相关产品推荐

