首页 > 代码库 > C++时间

C++时间

C++时间

头文件 chrono, 命名空间 std.

 

现在时间

  std::chrono::system_clock::now() 返回系统时钟的当前时间

 

时钟

  std::chrono::system_clock 代表系统当前的时间, 是不稳定的时钟, 并且提供了函数可将时间点转化为 time_t 类型的值
  std::chrono::steady_clock 表示一个稳定的时钟, 所谓稳定指调用 now()时, 其值总是大于上1次.

 

延迟

  std::this_thread::sleep_for() 和 std::this_thread::sleep_until()
  std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 等待 100ms

 

取得当前时间

    #include <chrono>    #include <sstream>    #include <iomanip>    std::string GetTimeStr()    {        std::chrono::system_clock::time_point now = std::chrono::system_clock::now();        time_t tt = std::chrono::system_clock::to_time_t(now);        struct tm ltm = {0};        localtime_s(&ltm, &tt);        std::stringstream stm;        stm << std::setfill(0);        stm << std::setw(4) << (ltm.tm_year + 1900) << "-";        stm << std::setw(2) << (ltm.tm_mon + 1) << "-";        stm << std::setw(2) << ltm.tm_mday << " ";        stm << std::setw(2) << ltm.tm_hour << ":";        stm << std::setw(2) << ltm.tm_min << ":";        stm << std::setw(2) << ltm.tm_sec;        return stm.str();    }

 

计算程序代码执行的时间

    std::chrono::steady_clock::time_point tbegin = std::chrono::steady_clock::now();    do_something();    std::chrono::steady_clock::time_point tend = std::chrono::steady_clock::now();    std::chrono::milliseconds used = std::chrono::duration_cast<std::chrono::milliseconds>(tend - tbegin);    std::cout << "used time:" << used.count() << " ms" << std::endl;

 

C++时间