在RunTime获取数值而不是Date值

时间:2012-10-08 07:48:17

标签: delphi date datetimepicker

我在运行时获取“DateTimePciker.Date”的数值。但我想要像'08 / 10/2012'这样的价值。如何获取DATE值而不是数值?

显示运行时的图片:


enter image description here

2 个答案:

答案 0 :(得分:7)

在旧的Delphi版本中,未显示

TDateTimeTDateTime是一个浮点类型,调试器显示浮点值是完全正常的。如果您需要查看值,可以考虑使用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所期望的价值。如果您需要以文本格式表示日期时间值,请使用适当的转换函数。