如何将毫秒日期转换为日期时间?
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
期望时间以秒而不是毫秒为单位。
如果您希望保留时间的毫秒部分,那么您可以轻松地将日期时间值增加除法的剩余部分。
需要强调的是,时间总是以某种单位系统衡量的,并且相对于某个起源或纪元。只知道一个值是不够的,你必须同时知道单位和纪元。是的,猜测这些通常很容易,但通常最好阅读生成时间值的软件的规范以明确地找出值是什么。
我有这个时间来自服务器: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
期望时间以秒而不是毫秒为单位。
如果您希望保留时间的毫秒部分,那么您可以轻松地将日期时间值增加除法的剩余部分。
需要强调的是,时间总是以某种单位系统衡量的,并且相对于某个起源或纪元。只知道一个值是不够的,你必须同时知道单位和纪元。是的,猜测这些通常很容易,但通常最好阅读生成时间值的软件的规范以明确地找出值是什么。