我想计算boost::posix_time:ptime
中两个时间戳之间的时间差。但是,由于时间戳包含最多微秒,因此结果可能不是我所期望的。
boost::posix_time::time_period oPeriod(start, end);
int32_t iDuration = oPeriod.length().total_seconds();
printf("AAAA [%s], [%s], [%d]\n", boost::posix_time::to_iso_string(start).c_str(), boost::posix_time::to_iso_string(end).c_str(), iDuration);
输出:
AAAA [20131030T232150.619049], [20131030T232152.558225], [1]
我想要的是截断秒的分数然后计算差异。所以上面的结果应该是2而不是1。
有办法吗?
答案 0 :(得分:0)
据我所知,没有简单的路线,在进行减法之前,您必须从fractional_seconds()
和start
移除end
,即
start -= start.fractional_seconds();
end -= end.fractional_seconds();
auto diff = end - start;
(注意:我假设start
和end
为time_duration
,如果它们是ptime
,那么您必须从{{1}}获取时间他们先......)