【发布时间】:2011-06-28 02:07:22
【问题描述】:
在 Delphi XE 应用程序中,我正在从最初由 C++ 程序创建的数据库中读取值。有一个日期列,存储(它会出现)为 time_t,即 Unix 时间,自 1970 年 1 月 1 日 00:00 UTC 以来的秒数。我可以处理时区,但是如何从 (long) time_t 获取 TDateTime?
【问题讨论】:
在 Delphi XE 应用程序中,我正在从最初由 C++ 程序创建的数据库中读取值。有一个日期列,存储(它会出现)为 time_t,即 Unix 时间,自 1970 年 1 月 1 日 00:00 UTC 以来的秒数。我可以处理时区,但是如何从 (long) time_t 获取 TDateTime?
【问题讨论】:
尝试使用作为 Dateutils 单元一部分的 unixtodatetime 函数:http://docwiki.embarcadero.com/VCL/en/DateUtils.UnixToDateTime
【讨论】:
如果您出于某种原因想自己做,显而易见的方法是将 time_t 除以一天中的秒数,然后将其添加到 1970 年 1 月 1 日 00:00 的 TDateTime。
(但 RRUZ 的答案应该可以工作,这意味着您不必重新发明轮子)。
【讨论】: