如何将毫秒日期转换为日期时间?

How to convert a milliseconds date to a DateTime?

我有这个时间来自服务器:1475245457452 日期和时间是:30.9.2016,16:24:17

如何将 Delphi 中的 1475245457452 转换为正确的日期和时间?

你没说,我猜这个数量实际上是毫秒,从Unix纪元算起。因此,使用 System.DateUtils 单位的 UnixToDateTime 转换它们:

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  System.DateUtils;

begin
  Writeln(DateTimeToStr(UnixToDateTime(1475245457452 div 1000)));
end.

我已经除以 1000 以转换为秒,因为 UnixToDateTime 期望时间以秒而不是毫秒为单位。 如果您希望保留时间的毫秒部分,那么您可以轻松地将日期时间值增加除法的剩余部分。

需要强调的是,时间总是以某种单位系统衡量的,并且相对于某个起源或纪元。只知道一个值是不够的,你必须同时知道单位和纪元。是的,猜测这些通常很容易,但通常最好阅读生成时间值的软件的规范以明确地找出值是什么。