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(<m, &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;
代码养活自己