我有一个名为currMonth的TDateTime变量。currMonth的值是"6/30/2000 11:59:59 PM“。我需要在TDBGrid中名为dtBegin的字段中插入currMonth作为默认值。
我尝试了下面的代码:
dtBegin->AsDateTime = currMonth;编译器成功编译了项目,但当我调试它时,我得到的dtBegin值不是“6/30/200011:59:59 PM”,而是{ 36738.9999999884 }。
有人知道这个TDateTime对象有什么问题吗?
提前谢谢。
发布于 2013-02-14 23:00:19
你在这里发帖的同时,有很多对your same question that you posted on the Embarcadero forum的回复。
简而言之,没有任何问题。TDateTime在内部作为double实现。调试检查器只是按原样向您显示double值,而不是您所期望的格式化日期/时间字符串。这是正常的行为,您的TDateTime本身在您的代码中可以很好地工作。您使用的是较旧版本的C++Builder,因此没有较新版本的C++Builder提供的TDateTime调试可视化工具来更好地显示TDateTime值,仅此而已。
如果需要在调试器中以格式化的方式查看RTL值,则必须在监视列表中定义一个条目,该条目调用TDateTime的DateTimeToStr()函数或TDateTime::FormatString()方法,并向您显示结果。
https://stackoverflow.com/questions/14871915
复制相似问题