2

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

显示运行时图片:


在此处输入图像描述

4

2 回答 2

7

TDateTime在旧的 Delphi 版本中未按预期显示。TDateTime是浮点类型,调试器显示浮点值是完全正常的。DateTimeToStr()如果您需要查看值,您可以考虑使用转换它。

于 2012-10-08T07:51:01.453 回答
6

DelphiTDateTime类型在文档中是这样描述的:

TDateTime类继承了一个 val 数据成员(声明为双精度),它保存日期时间值。TDateTime值的整数部分是自 1899 年 12 月 30 日以来经过的天数。TDateTime 值的小数部分一天中的时间。

System.pas类型中声明如下:

TDateTime = type Double;

你的价值41188.668981是一个完全有效的TDateTime价值。它表示一个时间点,即41188.668981Delphi 日期时间纪元之后的几天。调用DateTimeToStr()将其转换为人类可读的形式。如果您只想查看日期部分,不想查看时间,请DateToStr()改用。

Writeln(DateTimeToStr(41188.668981));
Writeln(DateToStr(41188.668981));

这导致了这个输出

2012 年 6 月 10 日 16:03:19
2012 年 6 月 10 日

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

于 2012-10-08T09:29:39.073 回答