在Delphi XE应用程序中,我正在读取最初由C++程序创建的数据库中的值。有一个日期列,作为time_t存储(它将出现),即Unix时间,自1970年1月1日00:00 UTC以来的秒数。我可以处理时区,但是如何从(long)time_t获取TDateTime?将C++ time_t转换为Delphi TDateTime
3
A
回答
11
尝试使用unixtodatetime函数在Dateutils单元的一部分:http://docwiki.embarcadero.com/VCL/en/DateUtils.UnixToDateTime
3
如果你想自己做一些原因,显而易见的方法是除以的秒数time_t的一天,然后将其添加到1970年1月1日00:00的TDateTime。
(但RRUZ答案应该可以工作,并且意味着您不必重新发明轮子)。
如果您使用的是不包含DateUtils单元的Delphi版本,则需要使用此功能。你描述的算法正是UnixToDateTime所做的;你引用的TDateTime值是25569. – 2011-02-16 04:59:05