栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Delphi时间戳Unix转换DateTimeToUnix和UnixToDateTime

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Delphi时间戳Unix转换DateTimeToUnix和UnixToDateTime

最近在使用DateTimeToUnix和UnixToDateTime转换的过程中发现的问题,DateTimeToUnix比C语言中的time时间多了28800秒,也就是8小时,这是因为Delphi用的是当前时区的时间,c语言中time()是按格林威治时间计算的,北京时间比格林威治时间多了8小时。

首先需要引用Use  DateUtils。

DateTimeToUnix(Now)获得今天的时间戳。

DateTimeToUnix(Now)-28800(8*60*60) 就和C语言中time()得到的一样了 。

UnixToDateTime(时间戳+28800(8*60*60)) 解析出正确的时间。

案例:假设时间为

var
  DateStr:string;

DateStr:='2022-07-10 17:30:30';

ed1.Text:=IntToStr(DateTimeToUnix(StrToDateTime(DateStr)));  //得出来的是:1657474230

看到了转出来的变11号了,日期不对。
 ed2.Text:=IntToStr(DateTimeToUnix(StrToDateTime(DateStr))-28800);

//得出来的是:1657445430 日期正确。

ed3.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',UnixToDateTime(StrToInt64(ed1.Text)));
 ed4.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',UnixToDateTime(StrToInt64(ed2.Text)+28800));

 

可以用以下网址检验成果。

Unix时间戳(Unix timestamp)转换工具 - 站长工具

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号