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

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

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

我试过了:

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

但是我不知道以这种方式获得的分辨率time_point是什么,而且我不知道如何将这个时间作为一个简单的unsigned long long来获取,而且我也没有任何想法如何将其转换为另一个分辨率。

Dejwi asked 2019-11-19T01:44:23Z
1个解决方案
96 votes

您可以执行duration_cast,以获取表示自纪元以来的时间的持续时间以及时钟的分辨率。 要转换为毫秒,请使用duration_cast

auto duration = now.time_since_epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
R. Martinho Fernandes answered 2019-11-19T01:44:44Z
translate from https://stackoverflow.com:/questions/9089842/c-chrono-system-time-in-milliseconds-time-operations