【发布时间】:2015-10-17 21:35:14
【问题描述】:
如何(使用 std::chrono 库)获取两个时间点之间的差异(以毫秒为单位)?
我可以用这个来做到这一点:
std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();
std::chrono::time_point<std::chrono::system_clock> foo = now + std::chrono::milliseconds(100);
std::chrono::duration<float> difference = foo - now;
const int milliseconds = difference.count() * 1000;
如何以毫秒为单位获得这个时间,这样我就可以将持续时间用作无符号整数,而不是浮点数,然后乘以 1000?
【问题讨论】:
-
chrono::duration_cast<chrono::milliseconds>(end_time - start_time).count() -
我花了 2 秒钟。谷歌把我带到了你的答案。
-
致在谷歌上搜索以毫秒为单位的时差后来到这里的人:小心!这个问题和答案的重点是如何获得一个整数毫秒的持续时间。如果您有更高精度的时间点(例如纳秒)并且您想保留所有数字而不截断,但您想转换为毫秒,您可以使用
duration_cast<duration<float,std::milli>(difference).count()。使用duration_cast<milliseconds>(duration).count()会截断您的数字,因为milliseconds基本上是duration<long,milli>。