添加毫秒到C日期

时间:2014-04-03 09:42:46

标签: c milliseconds strptime

我用strptime在C中解析了一个日期。

现在我有这样的事情:

debugLog(DEB_INFO, "observationDateConverted: %d-%d-%d %d:%d:%d\n", 
                        result.tm_year+1900, 
                        result.tm_mon + 1, 
                        result.tm_mday, 
                        result.tm_hour, 
                        result.tm_min, 
                        result.tm_sec);

结果收到最新日期(struct tm)

我有一堆这样的毫秒:1396682344000我想添加到该日期以了解结束日期。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

time_t totalseconds = mktime(&result);
uint_64 endtime = (totalseconds * 1000) + msDiff;

或者如果你想要结构:

time_t totalseconds = mktime(&result),
    endtimesec = totalseconds + msDiff;
struct tm * endTime = gmtime(&endtimesec);

答案 1 :(得分:1)

一般方法:将struct tm转换为时间戳(64位int),然后添加millis / 1000。

time_t totalseconds = mktime(&result) + (millis / 1000);

然后,您可以使用C's time API中的功能将时间戳转换回struct tm