2

如何从十六进制时间戳(例如 33 88 72 52)获得人类可读的?我已经从一个文件中将它作为一个数组字节 = {0x33,0x88,0x72,0x52} 拉出来,我认为它是小端序...在这个问题上卡了一个小时左右,谷歌并没有太大帮助。谢谢。

4

1 回答 1

5

这完全取决于未指定的编码。

但是,在四个字节处,它可能time_t该程序支持的值:

#include <stdio.h>
#include <time.h>

int main (void) {
    time_t tm = 0x52728833;       // little-endian 0x{33,88,72,52}
    printf ("%s\n", ctime (&tm));
    return 0;
}

这打印出来:

Fri Nov  1 00:41:23 2013

就在几天前(从提出这个问题开始)。

所以这是最有可能的可能性(几乎可以肯定,我敢冒险),您可以使用 ISO C 的所有奇妙的时间处理和打印功能来解决它​​。

于 2013-11-07T06:03:49.950 回答