2

我有从 2004 年到特定日期的毫秒数。我想将其转换为 time_t 以使用 ctime() 显示它?

也许还有另一种方法可以通过这个毫秒时间戳来可视化日期,有人有吗?

4

2 回答 2

1

假设“从 2004 年开始”是指“从 2004 年 00:00 UTC 开始”,那么

time_t time = 1072915200 + millis / 1000;

请注意,ctime()它将以本地时间而不是 UTC 时间显示结果。

于 2013-06-26T14:20:13.867 回答
0

time_t 只有一秒的精度。如果这对您来说没问题,您可以使用 mktime() 计算 2004-01-01 的 time_t 值,并将其添加到您的时间值(以秒为单位)。

struct tm tp;
memset(&tp, 0, sizeof(tp));
tp.tm_mday = 1;
tp.tm_mon = 0;
tp.tm_year = 2004 - 1900;
time_t offset = mktime(&tp);

time_t realtime = offset + yourtime / 1000;

printf("%s", ctime(&realtime));
于 2013-06-26T09:26:47.053 回答