dav*_*l12 4 unix delphi time datetime timestamp
我有以下时间戳:1444288186967.
当我把它放入Epoch转换器时,我得到正确的结果08 Oct 2015 07:09:46.
但是,当我使用(如另一篇文章中提到的)时,function UnixToDateTime(const AValue: Int64): TDateTime我得到02 Sep 47737 11:02:47.奇怪,不是吗?
我的代码(使用TMS Aurelius)
Person.EndDate.Value := UnixToDateTime(FHit.TimestampUntil);
Run Code Online (Sandbox Code Playgroud)
哪里FHit.TimestampUntil是Int64作为UnixToDateTime函数的期望.
这Person.EndDate.Value是一个TMS Aurelius可空TDateTime.
我怎么可能得到这样的结果日期?
通常,Unix时间戳以秒为单位,自1970年1月1日起.但是,该值1444288186967以毫秒为单位.除以1000和圆,您将得到预期的日期和时间8.10.2015 7:09:47
i64 := round(1444288186967/1000);
dt := UnixToDateTime(i64);
Edit2.Text := DateTimeToStr(dt);
Run Code Online (Sandbox Code Playgroud)
Edit2显示8.10.2015 7:09:47