我正在尝试将unixtime字符串转换为datetime,但结果不正确。我正在使用Delphi XE2,并使用Dateutils的UnixToDateTime函数转换unixtime字符串,但是没有运气。我还使用了在网络上发现的仍然相同的结果的不同功能。以下是必要的信息:
Unixtime字符串值为1552274340690
结果为“ 51159-08-14 04:51:30”,应为“ 3/11/2019,11:19:00 AM”。我得到的结果是来自在线转换器。
下面的示例代码使用System.DateUtils的UnixToDateTime:
var
nUnixTime : Int64;
begin
nUnixTime := StrtoInt64(sUnixTime); //sUnixTime = 1552274340690;
Result = UnixToDateTime(nUnixTime);
以下是我在网上找到的示例代码:
const
UnixStartDate: TDateTime = 25569.0;
var
nUnixTime : Int64;
begin
nUnixTime := StrtoInt64(sUnixTime); //sUnixTime = 1552274340690;
Result := (nUnixTime / 86400) + UnixStartDate;
请帮助,非常感谢。
答案 0 :(得分:2)
小测试
Caption:=DateTimeToStr(UnixToDateTime(SecondsBetween(StrToDate('01.01.1970'), Now)));`
给出正确的当前时间。
请注意,现在is measured的UnixTime只需秒
1552307060
1552274340690
当您的值(在第二行中)以毫秒为单位。
因此,您可以将其除以1000,以得到UnixToDateTime
函数可接受的值