c++ - c++ 中是否有任何日期时间模块

标签 c++ datetime c++11 c++17 chrono

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/

相关文章:

python - 如何将儒略日期转换为日历日期?

python - 日期时间格式并添加日期时间

c++ - 自适应路径-Astar修改

c++ - QODBCResult::exec:无法执行语句:“[Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误

android - Android 5.1 上的 Adreno 420 驱动程序错误

c++ - 返回值优化: Explicit move or implicit?

php strtotime 不起作用

c++ - 绑定(bind) make_unique 时出错

c++ - 显式引用限定转换运算符模板的实际应用

c++ - 为什么异常不退出程序?