我试图将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;
请帮助,非常感谢。
小测试
Caption:=DateTimeToStr(UnixToDateTime(SecondsBetween(StrToDate('01.01.1970'), Now)));`
给出正确的当前时间。
注意UnixTime现在is measured在几秒钟内
1552307060
1552274340690
而你的价值(在第二行)是以毫秒为单位。
因此,您可以将其除以1000以获得UnixToDateTime
函数可接受的值