2012-02-01 47 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

相關問題