首页
社区
课程
招聘
[旧帖] [讨论]PE文件头里包含的文件创建时间问题 0.00雪花
发表于: 2010-5-27 14:57 1874

[旧帖] [讨论]PE文件头里包含的文件创建时间问题 0.00雪花

2010-5-27 14:57
1874
在罗云彬的《Windows环境下32位汇编语言程序设计》第17章PE文件看到:TimeDateStamp字段,为创译创建文件时的时间,它的数值是从1969年12月31日下午4:00开始到创建时间为止的秒数。

但,我使用此值作为参数调用c库函数localtime,所返回的tm结构包含了正确的创建时间。
在MSDN中查看localtime函数介绍中,有此段信息:The localtime function converts a time stored as a time_t value and stores the result in a structure of type tm. The long value timer represents the seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC).

问题是:TimeDateStamp字段包含的时间,到底是从1969年12月31日下午4:00到创建时间为止的秒数,还是1970年1月1日00:00到创建时间为止的秒数??

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这问题很白痴  我都懒得和你讨论了
2010-5-27 17:27
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2010-5-27 19:11
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
应该是1970年1月1日00:00,时间戳指的的标准的格林威治时间到文件创建时对应的秒数,因为我们用的是东八区的时间,比标准的格林威治时间早了八个小时,所以才会相差8个小时。要不然为什么选用一个下午四点的时间让人费解。至于为什么是1970年1月1日凌晨零点是因为这一年Unix操作系统正式投入使用,所以时间戳也叫unix时间戳。
2010-5-27 19:55
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵 学习了
2010-5-28 13:39
0
雪    币: 76
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Unix历史那么久远啊
2010-5-28 14:40
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢 obpt 的回复,这个时间戳应该就是1970.1.1 零点。
2010-5-28 16:57
0
游客
登录 | 注册 方可回帖
返回
//