Delphi日期时间 UNIX
Delphi日期时间,就是常见的 2014-05-02 10:37:35
--------------------------------------------------------------------
UNIX日期时间,一个整数,从1970/01/01 开始的秒数,int64位
-------------------------------------------------------------------
标准UTC时间,
世界统一时间,世界标准时间,国际协调时间,简称UTC
不属于任意时区
中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。
-------------------------------------------==============
时区,北京是东8区,就是要加 8个小时,8*60*60=28800
注册表有个日期值,1398998255
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
with TRegistry.Create(KEY_WOW64_64KEY or KEY_ALL_ACCESS) do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion', False) then
begin
Memo1.Lines.Add(IntToStr(ReadInteger('InstallDate')));//
Memo1.Lines.Add(DateTimeToStr(UnixToDateTime(ReadInteger('InstallDate'))));//2014-05-02 2:37:35
Memo1.Lines.Add(DateTimeToStr(UnixToDateTime(ReadInteger('InstallDate') + ))); //2014-05-02 10:37:35
Memo1.Lines.Add(DateTimeToStr(JavaToDelphiDateTime(ReadInteger('InstallDate'))));// 1970-01-17 12:36:38
end;
finally
Free
end;
end;
http://www.sharejs.com/codes/delphi/2189
Unix时间戳转换成Delphi的TDateTime
function UnixDateToDateTime(const USec: Longint): TDateTime;
const
cUnixStartDate: TDateTime = 25569.0; // 1970/01/01
begin
Result := (Usec / ) + cUnixStartDate;
end;
{ Unix date conversion support } RTL
HoursPerDay = 24;
MinsPerHour = 60;
SecsPerMin = 60;
MSecsPerSec = 1000;
MinsPerDay = HoursPerDay * MinsPerHour;
SecsPerDay = MinsPerDay * SecsPerMin;
MSecsPerDay = SecsPerDay * MSecsPerSec;
{ Days between 1/1/0001 and 12/31/1899 }
DateDelta = 693594;
{ Days between TDateTime basis (12/31/1899) and Unix time_t basis (1/1/1970) }
UnixDateDelta = 25569;
function DateTimeToUnix(const AValue: TDateTime): Int64;
begin
Result := Round((AValue - UnixDateDelta) * SecsPerDay);
end; function UnixToDateTime(const AValue: Int64): TDateTime;
begin
Result := AValue / SecsPerDay + UnixDateDelta;
end;
http://tool.chinaz.com/Tools/unixtime.aspx
http://blog.csdn.net/missmecn/article/details/5870639
uses DateUtils;
DateTimeToUnix(Now)
可以转换到unix时间,但是注意的是,它得到的时间比c语言中time()得到的时间大了8*60*60
这是因为Now是当前时区的时间,c语言中time()是按格林威治时间计算的,
北京时间比格林威治时间多了8小时
DateTimeToUnix(Now)-8*60*60 就和c语言中time()得到的一样了
但我进一步研究DateTimeToUnix函数时发现,Delphi中的时间没有经过任何的转换,是直接读取系统时间
我试着改变当前计算机时区,发现Delphi返回值没有任何改变。
而在C++中,改变计算机时区,则time()返回值也随着改变,这就说明C++中标准时间是通过本地时间和当前时区进行计算得来的。
因此,在Delphi开发时,需要注意Delphi获取的时间戳是当前计算机所在时区时间,并非标准UTC时间。
UnixToDateTime()函数并没有对时区进行转换,仅仅是对时间进行了转换。
Delphi日期时间 UNIX的更多相关文章
- Delphi 日期时间函数
DateUtils.IncYear();DateUtils.IncMonth();DateUtils.IncWeek();DateUtils.IncDay();DateUtils.IncHour(); ...
- Delphi DateUtils时间单元
Uses DateUtils //时间单元,非常有用. 记得引用这个单元,不然不能用. CompareDate 比较两个日期时间值日期部分的大小 CompareDateTime 比较两个日期时间值的大 ...
- Delphi 日期函数列表
引用单元 :DateUtils CompareDate 比较两个日期时间值日期部分的大小CompareDateTime 比较两个日期时间值的大小CompareTime 比较两个日期时间值时间部分的大小 ...
- Unix时间戳转日期时间格式,C#、Java、Python各语言实现!
之前有个Q上好友没事问我,怎么自己写Unix时间戳转日期时间?于是我就顺手写了个C#版本给他!最近想起来,就萌发多写几个语言的版本分享,权当练习思路外加熟悉另外两种语言. 先说转换步骤 先处理年份,从 ...
- delphi ----日期控件运用,日期问题,日期时间比较
一.日期控件 1.DateTimePicker 1)只显示年月 DateMode:dmUpDown format:yyyy-MM 2)将DateTimePicker的Format属性中加入日期格式设成 ...
- 制作用于日期时间型字段的DELPHI数据感知控件
用DELPHI开发C/S应用方便而快速,因为它拥有大量易于使用的数据访问和数据感知控件.然而万事总是难以完美,DELPHI的DBEdit控件用于输入日期时间型字段却很不方便,为了改善这一缺点,笔者开发 ...
- 转换GMT秒数为日期时间格式-Delphi源码
转换GMT秒数为日期时间格式-Delphi源码.收藏最近在写PE分析工具的时候,需要转换TimeDateStamp字段值为日期时间格式,这是Delphi的源码. //把GMT时间的秒数转换成日期时间格 ...
- Java 日期时间与unix时间戳之间转换
日期时间 <--> 时间戳 java.time 包提供的新的日期和时间API LocalDateTime: 本地日期时间类 ZoneId: 时区类 ZonedDateTime: 带时区 ...
- Linux命令date日期时间和Unix时间戳互转
A.将日期转换为Unix时间戳将当前时间以Unix时间戳表示: date +%s 输出如下: 1361542433 转换指定日期为Unix时间戳: date -d '2013-2-22 22:14' ...
随机推荐
- Handler知识点详解
Handler是在多线程之间使用的,用于线程之间进行通信. 要想知道为什么需要Handler就首先说明android的主线程和工作线程. 主线程又称为UI线程.正是因为在android中,所有与UI有 ...
- iOS开发之真机测试
profile 位置在 /Users/userName/Library/MobileDevice/Provisioning Profiles /Users/user_lzz/Library/Mobi ...
- The new day of my blog
今天开始了我的博客建造之旅,作为一个ACMer(虽说是弱校的),我也想象其他人一样把自己的题解和心得记录下来,一来可以和大家分享一下,二来也可以留给将来的自己作回顾,希望众大神能够给以指导指导,让我这 ...
- 【ufldl tutorial】Softmax Regression
今天太长姿势了,什么叫懂了也写不出代码说的不就是我吗,就那么几行代码居然叽叽歪歪写了一个小时. 首先exercise要实现的是softmax的cost function和gradient,如下图: ( ...
- dbca建库时找不到ASM磁盘
现象 dbca创建数据库时,找不到ASM磁盘组:而grid用户使用asmca却又能看到ASM磁盘组. 解决方法 1. 检查设备的权限,正确的权限为grid:asmadmin 2. 检查GRID_HOM ...
- Java Performance - 优化和分析Garbage Collection/垃圾收集
随着硬件的不断提升,Java Heap 越来越大,合理的垃圾收集调优变得愈发重要.下面介绍一些最佳实践: 注意: 下面不涉及 IBM AIX Java. 同时不介绍原理,仅仅是建议以及初始配置/最佳实 ...
- commonJS — 通用方法(for COM)
for COM github: https://github.com/laixiangran/commonJS/blob/master/src/forCOM.js 代码 /** * Created b ...
- BOM头的来源
类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM).它是一串隐藏的字符,用于让记事本等编辑器识别 ...
- 微信公共平台php用$GLOBALS["HTTP_RAW_POST_DATA"]收不到信息解决方法
http://www.cnblogs.com/shendiao/archive/2013/04/24/3041450.html <?php /** * wechat php test */ // ...
- VC++编译zlib
目录 第1章简介 1 第2章版本1.2.3 2 2.1 编译汇编代码 2 2.1.1 32位汇编 2 2.1.2 64位汇编 5 2.2 Visual C++ 6.0 ...