2012-02-01 288 views
40

我遇到了一个小问题,这是由于C++ 11文档不足造成的。C++计时系统时间(以毫秒为单位),时间操作

我想获得一个以毫秒为单位的时间(毫秒或纳秒或秒),然后我将不得不将这个值“投”到另一个分辨率。 我可以使用gettimeofday(),但它会很容易,所以我试图用std :: chrono来实现它。

我想:

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

但我不知道是什么的这样time_point得到解决,我不知道如何得到这个时候作为一个简单的无符号很长很长,我没有任何概念如何将它转换成另一个决议。

+0

[性病::计时和cout]的可能重复(http://stackoverflow.com/questions/7889136/stdchrono-and-cout) – 2015-05-21 15:32:49

回答

77

你可以做now.time_since_epoch()来获得一个持续时间,表示自该时代以来的时间,与the clock's resolution。要转换成毫秒使用duration_cast

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

+1。更多信息(这几乎是一个教程):http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm – 2012-02-01 02:56:07

+0

@霍华德谢谢!现在我有一个地方可以指出人们,当他们告诉我他们没有在下面写''。 – 2012-02-01 20:59:41

+0

@ R.MartinhoFernandes我也有基本问题相关的时辰库[这里](http://stackoverflow.com/questions/31575061/how-to-convert-stdchronotime-point-to-uint64-t)。看看你能帮助我吗?任何帮助将不胜感激。 – user1950349 2015-07-22 22:33:46

相关问题