我有一个名为currMonth的TDateTime变量。 currMonth的价值是“6/30/2000 11:59:59 PM”。 我需要插入currMonth作为TDBGrid中一个名为dtBegin的字段的默认值。
我试试这段代码:
dtBegin->AsDateTime = currMonth;
编译器成功编译项目,但是当我调试它时,我得到的dtBegin值不是“6/30/2000 11:59:59 PM”,而是{36738.9999999884}。
任何人都知道这个TDateTime对象有什么问题吗?
提前致谢。
答案 0 :(得分:2)
在您发布此处的同时,对your same question that you posted on the Embarcadero forum有很多回复。
简而言之,没有任何错误。 TDateTime
在内部实施为double
。调试检查器仅向您显示double
值为原样,而不是您期望的格式化日期/时间字符串。这是正常行为,您的TDateTime
本身可以在您的代码中正常运行。您正在使用旧版本的C ++ Builder,因此您没有TDateTime
调试可视化工具,而C ++ Builder的新版本可以更好地显示TDateTime
值,这就是全部。
如果需要在调试器中以格式化方式查看TDateTime
值,则必须在监视列表中定义一个调用RTL的DateTimeToStr()
函数或{{1}的条目方法,并将结果显示给您。