我在运行时获取“DateTimePciker.Date”的数值。但我想要像'08 / 10/2012'这样的价值。如何获取DATE值而不是数值?
显示运行时的图片:
答案 0 :(得分:7)
TDateTime
。 TDateTime
是一个浮点类型,调试器显示浮点值是完全正常的。如果您需要查看值,可以考虑使用DateTimeToStr()
进行转换。
答案 1 :(得分:6)
Delphi TDateTime
类型在documentation:
TDateTime 类继承一个val数据成员 - 声明为double - 保存日期时间值。 TDateTime 值的组成部分是自1899年12月30日以来经过的天数。 TDateTime 值的小数部分是一天中的时间。
在System.pas
中,类型声明如下:
TDateTime = type Double;
41188.668981
的值是完全有效的TDateTime
值。它代表德尔福日期时间后41188.668981
天的时间点。调用DateTimeToStr()
将其转换为人类可读的形式。如果您只想查看日期部分,并且不想看时间,请改用DateToStr()
。
Writeln(DateTimeToStr(41188.668981));
Writeln(DateToStr(41188.668981));
导致此输出
06/10/2012 16:03:19 06/10/2012
总之,您的代码完全按预期运行。您看到的价值正是您对TDateTime
所期望的价值。如果您需要以文本格式表示日期时间值,请使用适当的转换函数。