在C++中有日期时间模块吗?
我在谷歌上做了一些研究,发现了 <ctime>
头文件,但是它让我很困惑。
还有其他什么可以完成我的工作吗?
<chrono>
C++11
从C++11开始,标准库包含日期和时间工具,在<chrono>
头文件中可用, 其中构造位于std::chrono
命名空间内。
其中包括:
该库是高度模板化的,因此您可以使用自己选择的类型作为原始表示(甚至是浮点类型),并设置自己的分辨率。
使用示例:如何在C++中获取当前时间和日期?
请注意,std::chrono
设施与旧的 <ctime>
标头类型有些兼容。例如,“系统时钟”类具有将时间表示形式time_t
转换为<ctime>
和从<ctime>
转换的方法。如果您正在组合 C 和 C++ 代码或需要在某个地方公开 C 接口,则这对您很有用;否则,请尝试避免基于<ctime>
的代码。
C++20
2020年批准的新标准版本增加了:
正如评论者@AndyG和@doug所建议的那样,Howard Hinnant是C++日期和时间方面的专家,他的许多工作实际上已经融入了标准——但并非全部。
Howard维护自己的库/一组库,名为“Date”。
它基于C++11的<chrono>
,但它的更改并不完全是C++20中新增加的;因此,如果您使用的是C++17或更早版本,它尤为有用。它增加了:
Duration
类型我假设最终,所有这里的好东西都将被标准化,但这还没有发生。