c++中有日期时间模块吗?
我在谷歌上进行了一些研究,并了解了 <ctime>
头文件,但它超出了我的想象。
还有什么可以做我的工作的吗?
最佳答案
在 C++ 标准中:<chrono>
C++11
从 C++11 开始,标准库包含 date & time utilities, available in the <chrono>
header , 在 std::chrono
中的构造命名空间。
您会发现:
- 时钟
- 时间点
- 持续时间
- 一个灵活的mechanism用于从字符串中解析日期和时间值
该库是大量模板化的,因此您可以使用您选择的类型作为原始表示(甚至是浮点类型),并设置您自己的分辨率。
使用示例:How to get current time and date in C++?
请注意 std::chrono
设施有点兼容旧的<ctime>
header 类型。例如,“系统时钟”类has methods用于与 <ctime>
相互转换时间表示,time_t
.如果您正在组合 C 和 C++ 代码,或者需要在某处公开 C 接口(interface),这将对您很有用;否则 - 尝试避免 <ctime>
- 基于代码。
C++20
新增2020年批准的新标准版本:
- 时区
- 日历
- 更多时长类型
- 更多时间点类型
- 更多时钟
超出标准:Howard Hinnant 的日期库
正如评论者@AndyG 和@doug 所建议的,Howard Hinnant 是“C++ 日期和时间专家”,他的大部分工作实际上已经进入标准 - 但不是全部。
Howard 维护着一个他自己的库/库集,名为“Date”。
它基于 C++11 <chrono>
,但它的变化并不完全是 C++20 中添加的;如果您使用 C++17 或更早版本,则特别有用。它补充说:
- 时区
- 日历,包括儒略历和伊斯兰历
- 更多时长类型
- 更多时间点类型
- 周
我假设最终,这里的所有好东西都会标准化,但这还没有发生。
关于c++ - c++ 中是否有任何日期时间模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65444812/