chrono since C++11
库的参考手册(英文)| cppreference
chrono
库定义了三种(直到c++ 20)五种(从c++ 20开始)主要类型以及实用函数和常用类型:
- cokcks
- time points
- durations
- calendar dates (since C++20)
- time zone information (since C++20)
clocks
时钟由起点(或历元)和滴答率组成。例如,时钟的历元可能是1970年1月1日,并且每秒钟滴答一次。c++定义了几种时钟类型:
定义在 |
|
---|---|
system_clock | 挂钟时间来自系统的实时时钟 |
steady_clock | 永远不会被调整的匀速时钟 |
... 更多时钟类型见: | https://en.cppreference.com/w/cpp/chrono |
epoch
unix时间戳(Unix timestamp)
UNIX时间戳:Unix时间戳(英文为Unix time, POSIX time 或 Unix timestamp)是从 Epoch(1970年1月1日00:00:00 UTC)开始所经过的秒数,不考虑闰秒。
一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。
参考网址:
chrono since C++11
库的参考手册(英文)| cppreference
time points
时间点(time point)是从某个特定时钟的历元开始的一段时间。
定义在 |
---|
time_point |
#include <iostream>
#include <chrono>
int main(int argc, char *argv[])
{
auto start = std::chrono::system_clock::now();
std::cout << start << std::endl;
std::cout << start.time_since_epoch() << std::endl;
std::cout
<< std::chrono::duration_cast<std::chrono::seconds>(start.time_since_epoch())
<< std::endl;
std::cout
<< std::chrono::duration_cast<std::chrono::minutes>(start.time_since_epoch())
<< std::endl;
return 0;
}
输出:
2024-11-17 13:33:22.246335500
1731850402246335500ns
1731850402s
28864173min
duration
持续时间(duration)由一段时间组成,定义为某个时间单位的滴答数。例如,“42秒”可以用一个持续时间表示,该持续时间由1秒时间单位的42个节拍组成。
Type | Definition |
std::chrono::nanoseconds
|
std::chrono::duration</* int64 */, std::nano> |
std::chrono::microseconds
|
std::chrono::duration</* int55 */, std::micro> |
std::chrono::milliseconds
|
std::chrono::duration</* int45 */, std::milli> |
std::chrono::seconds
|
std::chrono::duration</* int35 */> |
std::chrono::minutes
|
std::chrono::duration</* int29 */, std::ratio<60>> |
std::chrono::hours
|
std::chrono::duration</* int23 */, std::ratio<3600>> |
std::chrono::days (since C++20)
|
std::chrono::duration</* int25 */, std::ratio<86400>> |
std::chrono::weeks (since C++20)
|
std::chrono::duration</* int22 */, std::ratio<604800>> |
std::chrono::months (since C++20)
|
std::chrono::duration</* int20 */, std::ratio<2629746>> |
std::chrono::years (since C++20)
|
std::chrono::duration</* int17 */, std::ratio<31556952>> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App