Delphi: DateTime 的 UnixTime 字符串给出了意外的结果
Delphi: UnixTime string to DateTime gives unexpected result
我正在尝试将 unixtime 字符串转换为 datetime,但它给出了错误的结果。我正在使用 Delphi XE2 并使用 Dateutils 的 UnixToDateTime 函数来转换 unixtime 字符串,但没有成功。我还使用了我在网络上发现的不同功能,结果仍然相同。以下是必要的信息:
Unixtime string value is 1552274340690
The result is "51159-08-14 04:51:30" which should be this "3/11/2019, 11:19:00 AM". The result I got was from an online converter.
下面的示例代码使用 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
函数可接受的值
我正在尝试将 unixtime 字符串转换为 datetime,但它给出了错误的结果。我正在使用 Delphi XE2 并使用 Dateutils 的 UnixToDateTime 函数来转换 unixtime 字符串,但没有成功。我还使用了我在网络上发现的不同功能,结果仍然相同。以下是必要的信息:
Unixtime string value is 1552274340690
The result is "51159-08-14 04:51:30" which should be this "3/11/2019, 11:19:00 AM". The result I got was from an online converter.
下面的示例代码使用 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
函数可接受的值