template<class Clock,class Duration = typename Clock::duration> class time_point;
类模板 std::chrono::time_point 表示时间中的一个点。它被实现成如同存储一个 Duration 类型的自 Clock 的纪元起始开始的时间间隔的值。(通俗来讲,time_point存储一个时间点,这个时间点是指从CLock纪元开始,往后Duration类型的值所代表的那个时间点)
Clock 必须满足时钟 (Clock) 的要求或为 std::chrono::local_t (C++20 起)
成员函数
非成员函数
time_t:出于历史原因,通常将其实现为一个整数值,该整数值表示自UTC(1970年1月1日)00:00小时以来经过的秒数(即unix时间戳)
std::localtime:将time_t转换为本地日历时
std::gmtime:将time_t转换为世界时
std::chrono::steady_clock:类std::chrono::steady_clock
表示单调时钟。此时钟的时间点无法减少,因为物理时间向前移动。此时钟与壁钟时间无关(例如,它能是上次重启开始的时间),且最适于度量间隔。
#include <iostream>#include <iomanip>#include <ctime>#include <chrono>int main(){std::chrono::system_clock::time_point now = std::chrono::system_clock::now();std::time_t now_c = std::chrono::system_clock::to_time_t(now - std::chrono::hours(24));std::cout << "24 hours ago, the time was "<< std::put_time(std::localtime(&now_c), "%F %T") << '\n';std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();std::cout << "Hello World\n";std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();std::cout << "Printing took "<< std::chrono::duration_cast<std::chrono::microseconds>(end - start).count()<< "us.\n";}
运行结果:
如果觉得《c++11:std::chrono::time_point time_t std::localtime std::gmtime std::chrono::steady_clock》对你有帮助,请点赞、收藏,并留下你的观点哦!