如何将毫秒日期转换为DateTime?

Pas*_*alL 0 delphi delphi-10.1-berlin

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

我怎么能把Delphi中的这个1475245457452转换成一个正确的日期和时间?

Dav*_*nan 7

你没有说,但我可以猜测这个数量实际上是毫秒,从Unix纪元开始计算.因此,使用它们转换UnixToDateTimeSystem.DateUtils单位:

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  System.DateUtils;

begin
  Writeln(DateTimeToStr(UnixToDateTime(1475245457452 div 1000)));
end.
Run Code Online (Sandbox Code Playgroud)

我已将其除以1000转换为秒,因为UnixToDateTime预计时间以秒为单位而不是毫秒.如果您希望保留毫秒部分时间,则可以通过除法的其余部分随时增加日期时间值.

重要的是要强调时间总是在某个单位系统中测量,并且相对于某个原点或时代而言.知道一个价值永远不够,但你必须知道单位和时代.是的,通常很容易猜到这些,但通常最好阅读产生时间值的软件规范,以明确找出价值.