簡體   English   中英

將 stable_clock::time_point 轉換為 time_t

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM