C++ chrono 系统时间(以毫秒为单位),时间操作
Posted
技术标签:
【中文标题】C++ chrono 系统时间(以毫秒为单位),时间操作【英文标题】:C++ chrono system time in milliseconds, time operations 【发布时间】:2012-02-23 18:43:22 【问题描述】:我遇到了一个小问题,因为 C++11 的文档不足。
我想以毫秒、纳秒或秒为单位获取自纪元以来的时间,然后我必须将此值“转换”为另一个分辨率。 我可以使用 gettimeofday() 来做到这一点,但这很容易,所以我尝试使用 std::chrono 来实现它。
我试过了:
std::chrono::time_point<std::chrono::system_clock> now =
std::chrono::system_clock::now();
但我不知道以这种方式获得的 time_point 的分辨率是什么,我不知道如何将这个时间作为简单的 unsigned long long 获得,我也不知道如何将它转换为另一个分辨率。
【问题讨论】:
std::chrono and cout 的可能重复项 【参考方案1】:您可以使用the clock's resolution 获取表示自纪元以来时间的持续时间,使用the clock's resolution。要转换为毫秒,请使用 duration_cast
:
auto duration = now.time_since_epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
【讨论】:
+1。更多信息在这里(几乎是一个教程):open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm @Howard 谢谢!现在,当人们告诉我他们不理解<chrono>
时,我有一些地方可以指出。
如果不包括快捷方式标题:auto duration = std::chrono::system_clock::now().time_since_epoch();以上是关于C++ chrono 系统时间(以毫秒为单位),时间操作的主要内容,如果未能解决你的问题,请参考以下文章