转换GMT秒数为日期时间格式-Delphi源码。收藏
最近在写PE分析工具的时候,需要转换TimeDateStamp字段值为日期时间格式,这是Delphi的源码。

//把GMT时间的秒数转换成日期时间格式
function GetGMTDateTime(Value:Int64):TDateTime;
var
Year,Month,Day:Word;
Hour,Min,Sec,MSec:Word;
iYear,iDay:Word;
iHour,iMin,iSec:Word;
RInt,i:Integer;
TempDate,TempTime:TDateTime;
begin
//GMT是从1970年1月1日开始计算的,所以把它作为初值
Year:=1970; Month:=1; Day:=1;
Hour:=0; Min:=0; Sec:=0; MSec:=0;
//计算文件创建的年份
iYear:=Value div (365*24*60*60);
Year:=Year+iYear;
//计算文件除创建整年份以外还有多少天
iDay:=(Value mod (365*24*60*60)) div (24*60*60);
//把闰年的年份数计算出来
RInt:=0;
for i:=1970 to Year-1 do
begin
if (i mod 4)=0 then
RInt:=RInt+1;
end;

//计算文件创建的时间(几时)
iHour:=((Value mod (365*24*60*60)) mod (24*60*60)) div (60*60);
Hour:=Hour+iHour;
//计算文件创建的时间(几分)
iMin:=(((Value mod (365*24*60*60)) mod (24*60*60)) mod (60*60)) div 60;
Min:=Min+iMin;
//计算文件创建的时间(几秒)
iSec:=(((Value mod (365*24*60*60)) mod (24*60*60)) mod (60*60)) mod 60;
Sec:=Sec+iSec;
//合并日期和时间
TempDate:=EncodeDate(Year,Month,Day);
TempTime:=EncodeTime(Hour,Min,Sec,MSec);
//由于闰年的二月份有29天,闰年年份一年有366年天,而平年一年有365天,上面
//是用365计算的,所以要减去闰年年份多出来的一天
//最后返回值合并日期和时间到TDateTime类型中
Result:=(TempDate+iDay-RInt)+TempTime;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Temp:TDateTime;
begin
//708992537为秒数
Temp:=GetGMTDateTime(708992537);
//取出日期
Edit1.Text:=DateToStr(Temp);
//取出时间
Edit2.Text:=TimeToStr(Temp);
end;

转换GMT秒数为日期时间格式-Delphi源码的更多相关文章

  1. C# 秒数转日期_由秒数得到日期几天几小时_当前日期时间,转换为秒

    ///<summary> ///由秒数得到日期几天几小时... ///</summary ///<param name="t">秒数</para ...

  2. SQL Server日期时间格式转换字符串详解 (详询请加qq:2085920154)

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  3. SQL Server日期时间格式转换字符串

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  4. SQL Server日期时间格式转换字符串详解

    本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...

  5. Sql日期时间格式转换;取年 月 日,函数:DateName()、DATEPART()

    一.sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007 ...

  6. sql 日期时间格式转换

    Sql日期时间格式转换   sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, ...

  7. [php基础]Mysql日期函数:日期时间格式转换函数详解

    在PHP网站开发中,Mysql数据库设计中日期时间字段必不可少,由于Mysql日期函数输出的日期格式与PHP日期函数之间的日期格式兼容性不够,这就需要根据网站实际情况使用Mysql或PHP日期转换函数 ...

  8. 一起Polyfill系列:让Date识别ISO 8601日期时间格式

    一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...

  9. db2 日期时间格式

    db2日期和时间常用汇总 1.db2可以通过SYSIBM.SYSDUMMY1.SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值. SELECT 'HELLO DB2 ...

随机推荐

  1. scala 加载与保存xml文档

    package scala_enhance.xml import scala.xml.XML import scala.io.Source import jdk.internal.org.xml.sa ...

  2. SQL生成n位随机字符串

    --1.随着newid() go --创建一个视图(因为不能在功能直接用于newid()) create view vnewid as select newid() N'MacoId'; go --创 ...

  3. Entity Framework知识小总结

    什么是Entity Framework EF是微软主推的数据存取技术,在实际开发中,现在通常使用EF来构建应用程序的数据存取层,它是一个开源的“对象/关系映射(ORM:Object Relationa ...

  4. vue axios拦截器加全局loading

    import axios from 'axios' import util from './util' import {showFullScreenLoading, tryHideFullScreen ...

  5. 数据结构:点之间的最短距离--Floyd算法

    Floyd算法 Floyd算法 Dijkstra算法是用于解决单源最短路径问题的,Floyd算法则是解决点对之间最短路径问题的.Floyd算法的设计策略是动态规划,而Dijkstra採取的是贪心策略. ...

  6. atitit.提高开发效率---mda 革命性的软件开发方法

    atitit.提高开发效率---mda 革命性的软件开发方法 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和事实上现相分离 2 3. 眼下的问题模型和代码不同步 2 4.  ...

  7. cocos2d-x 打开控制面板

    于cocos2dx反过来,我们所熟悉的控制台输出,可以查看日志,例如C介面printf();性能. int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTA ...

  8. 3 学习UML图 学习DDD的基本概念

    今天在学习DDD的过程中看到了大神 圣杰的博文 个人觉得非常经典 强烈推荐  在此提供url链接: UML类图10分钟快速入门 关于聚合 的理解 :一类没有紧密相关的东西聚在一起 ,分开了也可以独立存 ...

  9. ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 视图 花了几章节,终于把 ASP.NET Core MVC 中的 C 控 ...

  10. matlab 正态分布相关 API

    randn:标准正太分布(μ=0,σ=1) normrnd:正态分布随机数,(需要手动指定 μ,σ,二者均是标量) mvnrnd:多变量正态分布随机数,(需要手动指定 μ,σ(二者为向量))