TimeDateStamp中GMT秒数转化为实际时间

来源:互联网 发布:pmp网络课程 编辑:程序博客网 时间:2024/05/18 20:06

PE结构中的TimeDateStamp表明文件时何时被创建的。

使用stud_pe查看该exe结构中的TimeDateStamp字段

#include<iostream>#include<time.h>int main(){time_t t = 0x561A0d74 ;std::cout<<ctime(&t)<<std::endl;char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};struct tm *p;p = localtime(&t) ;printf ("%d%d%d ", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday);    printf("%s%d:%d:%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);system("pause");return 0;}

1、time

time_t time(time_t *t);
函数说明:此函数会返回从公元 1970 年1 月1 日的UTC 时间从0 时0 分0 秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t 指针所指的内存。
返回值:成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno 中。

2、localtime

定义函数:struct tm *localtime(const time_t * timep);
函数说明:localtime()将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm 返回。结构tm 的定义请参考gmtime()。此函数返回的时间日期已经转换成当地时区。
返回值:返回结构tm 代表目前的当地时间。

复制纯文本新窗口
  1. struct tm{
  2. int tm_sec; //代表目前秒数, 正常范围为0-59, 但允许至61 秒
  3. int tm_min; //代表目前分数, 范围0-59
  4. int tm_hour; //从午夜算起的时数, 范围为0-23
  5. int tm_mday; //目前月份的日数, 范围01-31
  6. int tm_mon; //代表目前月份, 从一月算起, 范围从0-11
  7. int tm_year; //从1900 年算起至今的年数
  8. int tm_wday; //一星期的日数, 从星期一算起, 范围为0-6
  9. int tm_yday; //从今年1 月1 日算起至今的天数, 范围为0-365
  10. int tm_isdst; //日光节约时间的旗标
  11. };

3、ctime

定义函数:char *ctime(const time_t *timep);
函数说明:ctime()将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为"Wed Jun 30 21 :49 :08 1993\n"。
注意:若再调用相关的时间日期函数,此字符串可能会被破坏。
返回值:返回一字符串表示目前当地的时间日期。

0 0