2013-06-26 241 views
1

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

也许还有另一种方法来显示日期这个毫秒时间戳,有人有吗?

回答

0

time_t只有1秒的准确度。如果这对你是可以的,你可以使用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)); 
1

假设由“从2004年起”你的意思是“在00:00 UTC从2004年开始”,然后

time_t time = 1072915200 + millis/1000; 

当心ctime()将结果显示在本地时间而不是UTC。