C++11 std標准庫chrono獲取系統時間戳


微秒級精度系統時間操作

 1 #include <chrono>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     // 獲取操作系統當前時間點(精確到微秒)
 7     chrono::time_point<chrono::system_clock, chrono::microseconds> tpMicro
 8         = chrono::time_point_cast<chrono::microseconds>(chrono::system_clock::now());
 9     // (微秒精度的)時間點 => (微秒精度的)時間戳
10     time_t totalMicroSeconds = tpMicro.time_since_epoch().count();
11 
12 
13     // (微秒精度的)時間戳 => (微秒精度的)時間間隔
14     chrono::microseconds durMicro = chrono::microseconds(totalMicroSeconds);
15     // (微秒精度的)時間間隔 => (微秒精度的)時間點
16     tpMicro = chrono::time_point<chrono::system_clock, chrono::microseconds>(durMicro);
17     // (各種精度的)時間點 => (秒精度的)時間戳
18     time_t timestamp_s = std::chrono::system_clock::to_time_t(tpMicro);
19 
20     // 獲取微秒時間
21     int micro = (totalMicroSeconds % 1000000);
22 
23 
24     // 將時間戳轉換為時間格式
25     tm time;
26     gmtime_s(&time, &timestamp_s);
27 
28     char szTime[64];
29     sprintf_s(szTime, "%04d-%02d-%02d %02d:%02d:%02d.%06d",
30         time.tm_year + 1900, time.tm_mon + 1, time.tm_mday, (time.tm_hour + 8) % 24, time.tm_min, time.tm_sec, micro);
31 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM