C语言中时间戳转换成时间字符串

时间:2022-06-25 02:38:37

在PE格式里有个字段是文件的创建时间戳,我想把转成字符串,这样看的更直观。

1 1 TCHAR buffer[50] = {0};
2 2 struct tm Tm = {0};
3 3 time_t time = (time_t)NtHeader->FileHeader.TimeDateStamp;//时间戳
4 4 gmtime_s(&Tm, &time);
5 5 printf(buffer, TEXT("%d年%d月%d日 %d:%d:%d"), Tm.tm_year+1900, Tm.tm_mon+1, Tm.tm_mday, Tm.tm_hour+8, Tm.tm_min, Tm.tm_sec);
6 6 //注意:这个函数计算出来的年份是自1900年起的多少年,所以要+1900,计算所得的月份0表示第一个月以此来推,所以要+1,计算得到的时区不在我国,相差8个小时,所以要+8.