zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    go语言关于线程与通道channal
    linux 搭建SVN服务端
    使用mbedtls的使用说明和AES加密方法(原来的PolarSSL)
    清理 Xcode 10 记录
    Windows下修改iTunes备份路径
    Winform窗口自适应
    修改类模板文件
    HashTable
    修改App.config的键和值
    博客园动画效果
  • 原文地址:https://www.cnblogs.com/IAMSailorMoon/p/15104496.html
Copyright © 2011-2022 走看看