C + + 超时系统时间(以毫秒为单位) ,时间操作

由于 C + + 11的文档不足,我遇到了一个小问题。

我希望获得以毫秒、纳秒或秒为单位的自纪元以来的时间,然后必须将这个值“强制转换”到另一个分辨率。 我可以使用 gettimeofday ()来完成,但是太容易了,所以我尝试使用 std: : chrono 来完成。

我试过:

std::chrono::time_point<std::chrono::system_clock> now =
std::chrono::system_clock::now();

但是我不知道用这种方法得到的时间点的分辨率是多少,我不知道如何得到这个时间作为一个简单的无符号长度,我也不知道如何将它转换成另一个分辨率。

132480 次浏览

You can do now.time_since_epoch() to get a duration representing the time since the epoch, with the clock's resolution. To convert to milliseconds use duration_cast:

auto duration = now.time_since_epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();