在RunTime获取数值而不是Date值

Gan*_*pat 2 delphi date datetimepicker

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

显示运行时的图片:


在此输入图像描述

iMa*_*ari 7

TDateTime在旧的Delphi版本中没有像您期望的那样显示.TDateTime是一个浮点类型,调试器显示浮点值是完全正常的.DateTimeToStr()如果需要查看值,可以考虑使用它进行转换.


Dav*_*nan 6

Delphi TDateTime类型在文档中描述如下:

TDateTime类型类继承的VAL数据成员-宣布为双-保存日期时间值.一的组成部分TDateTime类型值已经过去了,因为12月30日,1899年a的小数部分的天数TDateTime类型值是一天的时间.

System.pas类型中声明如下:

TDateTime = type Double;
Run Code Online (Sandbox Code Playgroud)

您的价值41188.668981是一个完全有效的TDateTime价值.它代表41188.668981德尔福日期时间之后几天的时间点.要求DateTimeToStr()将其转换为人类可读的形式.如果您只想查看日期部分,并且不想看时间,请DateToStr()改用.

Writeln(DateTimeToStr(41188.668981));
Writeln(DateToStr(41188.668981));
Run Code Online (Sandbox Code Playgroud)

这导致了这个输出

06/10/2012 16:03:19
06/10/2012

总之,您的代码完全按预期运行.你看到的价值正是你所期望的TDateTime.如果需要以文本格式表示日期时间值,请使用适当的转换函数.