![](/img/trans.png)
[英]Persistent std::chrono time_point<steady_clock>
[英]Converting steady_clock::time_point to time_t
我正在使用steady_clock
來保存一些消息的時間戳。 出於調試目的,擁有日歷(或類似的東西)很有用。
對於其他時鍾,有靜態函數to_time_t
,但在 GCC (MinGW 4.8.0) 上不存在此函數。
現在我打印如下內容:
Timestamp: 26735259098242
對於時間戳,我需要一個 stable_clock,所以我不能使用system_clock
或其他。
編輯之前的打印是從time_since_epoch().count
() 給出的
假設您需要穩定的行為來進行內部計算,而不是顯示,這里有一個函數可以用來轉換為time_t
進行顯示。
using std::chrono::steady_clock;
using std::chrono::system_clock;
time_t steady_clock_to_time_t( steady_clock::time_point t )
{
return system_clock::to_time_t(system_clock::now()
+ duration_cast<system_clock::duration>(t - steady_clock::now()));
}
如果您需要穩定的日志記錄行為,您需要在啟動時獲得一對( system_clock::now(), steady_clock::now() )
,然后永遠使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.