C++计时系统时间(以毫秒为单位),时间运算

C++ chrono system time in milliseconds, time operations

本文关键字:时间 为单位 运算 系统 C++      更新时间:2023-10-16

我遇到了一个小问题,原因是C++11文档不足。

我想获得自epoch以来的时间(以毫秒、纳秒或秒为单位),然后我必须将该值"转换"为另一个分辨率。我可以使用gettimeofday()来实现它,但它会很容易,所以我尝试使用std::chrono来实现它。

我试过了:

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

但我不知道以这种方式获得的time_point的分辨率是什么,我也不知道如何将这个时间作为一个简单的无符号长-长,我也没有任何概念如何将其转换为另一个分辨率。

您可以执行now.time_since_epoch()以获得表示自epoch以来的时间的持续时间,以及时钟的分辨率。要转换为毫秒,请使用duration_cast:

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