C ++ chrono系统时间,以毫秒为单位,时间操作

时间:2012-02-01 02:14:40

标签: c++ time c++11 chrono

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

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

我试过了:

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

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

1 个答案:

答案 0 :(得分:91)

您可以now.time_since_epoch() auto duration = now.time_since_epoch(); auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); 来获取代表自纪元以来时间的持续时间。要转换为毫秒,请使用the clock's resolution

{{1}}