转换GMT秒数为日期时间格式-Delphi源码
转换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源码的更多相关文章
- C# 秒数转日期_由秒数得到日期几天几小时_当前日期时间,转换为秒
///<summary> ///由秒数得到日期几天几小时... ///</summary ///<param name="t">秒数</para ...
- SQL Server日期时间格式转换字符串详解 (详询请加qq:2085920154)
在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...
- SQL Server日期时间格式转换字符串
在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...
- SQL Server日期时间格式转换字符串详解
本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...
- Sql日期时间格式转换;取年 月 日,函数:DateName()、DATEPART()
一.sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007 ...
- sql 日期时间格式转换
Sql日期时间格式转换 sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, ...
- [php基础]Mysql日期函数:日期时间格式转换函数详解
在PHP网站开发中,Mysql数据库设计中日期时间字段必不可少,由于Mysql日期函数输出的日期格式与PHP日期函数之间的日期格式兼容性不够,这就需要根据网站实际情况使用Mysql或PHP日期转换函数 ...
- 一起Polyfill系列:让Date识别ISO 8601日期时间格式
一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...
- db2 日期时间格式
db2日期和时间常用汇总 1.db2可以通过SYSIBM.SYSDUMMY1.SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值. SELECT 'HELLO DB2 ...
随机推荐
- scala 加载与保存xml文档
package scala_enhance.xml import scala.xml.XML import scala.io.Source import jdk.internal.org.xml.sa ...
- SQL生成n位随机字符串
--1.随着newid() go --创建一个视图(因为不能在功能直接用于newid()) create view vnewid as select newid() N'MacoId'; go --创 ...
- Entity Framework知识小总结
什么是Entity Framework EF是微软主推的数据存取技术,在实际开发中,现在通常使用EF来构建应用程序的数据存取层,它是一个开源的“对象/关系映射(ORM:Object Relationa ...
- vue axios拦截器加全局loading
import axios from 'axios' import util from './util' import {showFullScreenLoading, tryHideFullScreen ...
- 数据结构:点之间的最短距离--Floyd算法
Floyd算法 Floyd算法 Dijkstra算法是用于解决单源最短路径问题的,Floyd算法则是解决点对之间最短路径问题的.Floyd算法的设计策略是动态规划,而Dijkstra採取的是贪心策略. ...
- atitit.提高开发效率---mda 革命性的软件开发方法
atitit.提高开发效率---mda 革命性的软件开发方法 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和事实上现相分离 2 3. 眼下的问题模型和代码不同步 2 4. ...
- cocos2d-x 打开控制面板
于cocos2dx反过来,我们所熟悉的控制台输出,可以查看日志,例如C介面printf();性能. int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTA ...
- 3 学习UML图 学习DDD的基本概念
今天在学习DDD的过程中看到了大神 圣杰的博文 个人觉得非常经典 强烈推荐 在此提供url链接: UML类图10分钟快速入门 关于聚合 的理解 :一类没有紧密相关的东西聚在一起 ,分开了也可以独立存 ...
- ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 视图 花了几章节,终于把 ASP.NET Core MVC 中的 C 控 ...
- matlab 正态分布相关 API
randn:标准正太分布(μ=0,σ=1) normrnd:正态分布随机数,(需要手动指定 μ,σ,二者均是标量) mvnrnd:多变量正态分布随机数,(需要手动指定 μ,σ(二者为向量))