我正在尝试衡量某事的持续时间。 当它开始时我调用start_time = time(NULL); 当它结束时:
time_t a_time = time(NULL) - start_time;
struct tm * ts = localtime(&a_time);
char time_buff[32];
memset (time_buff,0,32);
sprintf (time_buff, "Duration: %02d:%02d:%02d", ts->tm_hour, ts->tm_min, ts->tm_sec);
问题是ts-> tm_hour总是2。
请指教。 谢谢, 内厄姆
答案 0 :(得分:2)
函数localtime
将时间转换为完整的日期和时间。你最好通过分区和模运算将它转换为天,小时和分钟。
答案 1 :(得分:1)
你最终生活在距离UTC时间2小时的国家吗?
通过致电localtime()
,将您的来电替换为gmtime()
(当前时区)。
答案 2 :(得分:1)
为什么不使用一个返回经过的毫秒数(clock或gettimeofday)然后转换为小时/分钟/秒的函数?