900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Delphi中系统时间与Unix时间戳互相转换

Delphi中系统时间与Unix时间戳互相转换

时间:2024-03-26 01:57:45

相关推荐

Delphi中系统时间与Unix时间戳互相转换

应用场景

经常会用到的时间戳转换,特别是在网页数据中,有在线网址工具转换/tools/unixtime.aspx

但我们必须要再自己的程序里面实现,这里有个时区问题,默认按格林威治时间计算的,如果按北京时间来算会比格林威治时间多了8小时。

函数代码

//DateTime==>>UnixDatefunction DateTimeToUnixDate(const ADate: TDateTime): Longint;constcUnixStartDate: TDateTime = 25569.0; // 1970/01/01beginResult := Round((ADate - cUnixStartDate) * 86400);end;//UnixDate==>>DateTimefunction UnixDateToDateTime(const USec: Longint): TDateTime;constcUnixStartDate: TDateTime = 25569.0; // 1970/01/01beginResult := (Usec / 86400) + cUnixStartDate;end;//等价函数function DateTimeToUnixDate( d: TDateTime ): Int64;vardJavaStart: TDateTime;begin//时间是从1970年1月1日0点到当前的间隔dJavaStart := EncodeDateTime( 1970, 1, 1, 0, 0, 0, 0 );Result := MilliSecondsBetween( d, dJavaStart );end;//曾遇到过按北京时间算时间戳的function DateTimeToUnixDate( d: TDateTime ): Int64;vardJavaStart: TDateTime;begindJavaStart := EncodeDateTime( 1970, 1, 1, 8, 0, 0, 0 );Result := MilliSecondsBetween( d, dJavaStart );end;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。