delphi XE5实现DateTimeToUnix/UnixToDateTime的一点小改进  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi XE5实现DateTimeToUnix/UnixToDateTime的一点小改进


介绍

本文章介绍了Delphi XE5实现DateTimeToUnix/UnixToDateTime的一点小改进,在原来的函数中Delphi的DateTimeToUnix/UnixToDateTime转换时间并没有考虑到本地时间和格林尼治时间的差,这样在中国时间就差了8个小时,所以对它进行了一些改造。

type
  time_t = Int64;
function DateTimeToUnix(ConvDate: TDateTime): time_t;
var
  zi : TTimeZoneInformation;
begin
  GetTimeZoneInformation(zi);
  Result := Round((ConvDate - UnixDateDelta) * 86400) + 60*(zi.Bias + zi.DaylightBias);
end;

function UnixToDateTime(USec: time_t): TDateTime;
var
  zi : TTimeZoneInformation;
begin
  GetTimeZoneInformation(zi);
  Result := ((USec - 60*zi.Bias) / 86400) + UnixDateDelta;
end;


通过上面的函数,就可以解决这样的问题。

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.14259099960327 seconds