我在运行时获取“DateTimePciker.Date”的数值。但我想要像'08/10/2012'这样的价值。如何获取 DATE 值而不是数值?
显示运行时图片:
我在运行时获取“DateTimePciker.Date”的数值。但我想要像'08/10/2012'这样的价值。如何获取 DATE 值而不是数值?
显示运行时图片:
TDateTime
在旧的 Delphi 版本中未按预期显示。TDateTime
是浮点类型,调试器显示浮点值是完全正常的。DateTimeToStr()
如果您需要查看值,您可以考虑使用转换它。
DelphiTDateTime
类型在文档中是这样描述的:
TDateTime类继承了一个 val 数据成员(声明为双精度),它保存日期时间值。TDateTime值的整数部分是自 1899 年 12 月 30 日以来经过的天数。TDateTime 值的小数部分是一天中的时间。
在System.pas
类型中声明如下:
TDateTime = type Double;
你的价值41188.668981
是一个完全有效的TDateTime
价值。它表示一个时间点,即41188.668981
Delphi 日期时间纪元之后的几天。调用DateTimeToStr()
将其转换为人类可读的形式。如果您只想查看日期部分,不想查看时间,请DateToStr()
改用。
Writeln(DateTimeToStr(41188.668981));
Writeln(DateToStr(41188.668981));
这导致了这个输出
2012 年 6 月 10 日 16:03:19 2012 年 6 月 10 日
总之,您的代码完全按预期运行。您看到的值正是您对 a 的期望值TDateTime
。如果您需要以文本格式表示日期时间值,请使用适当的转换函数。