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, ×tamp_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 }