转换为C++;时间\u t到Delphi TDateTime 在Delphi XE应用程序中,我正在读取最初由C++程序创建的数据库的值。有一个日期列,存储(显示)为time\u t,即Unix time,即UTC 1970年1月1日00:00后的秒数。我可以处理时区,但如何从(长)时间中获取TDateTime?

转换为C++;时间\u t到Delphi TDateTime 在Delphi XE应用程序中,我正在读取最初由C++程序创建的数据库的值。有一个日期列,存储(显示)为time\u t,即Unix time,即UTC 1970年1月1日00:00后的秒数。我可以处理时区,但如何从(长)时间中获取TDateTime?,c++,delphi,time-t,C++,Delphi,Time T,尝试使用作为Dateutils单元一部分的unixtodatetime函数:如果出于某种原因您想自己做,显而易见的方法是将时间除以一天中的秒数,然后将其添加到TDateTime中,时间为1月1日00:00,1970年 (但RRUZ答案应该有效,这意味着您不必重新发明轮子)。如果您使用的是不包含DateUtils单元的Delphi版本,则需要此答案。您描述的算法正是UnixToDateTime所做的;您所指的TDateTime值是25569。感谢您提及该常数。我没有查看UnixToDateTime

尝试使用作为Dateutils单元一部分的unixtodatetime函数:

如果出于某种原因您想自己做,显而易见的方法是将时间除以一天中的秒数,然后将其添加到TDateTime中,时间为1月1日00:00,1970年


(但RRUZ答案应该有效,这意味着您不必重新发明轮子)。

如果您使用的是不包含DateUtils单元的Delphi版本,则需要此答案。您描述的算法正是UnixToDateTime所做的;您所指的TDateTime值是25569。感谢您提及该常数。我没有查看UnixToDateTime的代码,并且有点太懒了,无法找出正确的TDataTime值。但是,一次快速呼叫EncodeDate应该为提问者提供该值:)