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

C++ 中是否有任何日期时间模块?
我在谷歌上研究了一下,开始了解<ctime>头文件,但它只是超出了我的头脑。

还有什么可以做我的工作吗?

回答

在 C++ 标准中: <chrono>

C++11

从 C++11 开始,标准库包含日期和时间实用程序,在<chrono>header 中可用,在std::chrono命名空间中构造。

其中,您会发现:

  • 时钟
  • 时间点
  • 持续时间
  • 从字符串解析日期和时间值的灵活机制

该库是大量模板化的,因此您可以使用您选择的类型作为原始表示(甚至浮点类型),并设置您自己的分辨率。

使用示例:如何在 C++ 中获取当前时间和日期?

请注意,std::chrono工具与旧的<ctime>标头类型有些兼容。例如,“系统时钟”类具有 的方法用于转换和从<ctime>时间表示,time_t。如果您组合 C 和 C++ 代码,或者需要在某处公开 C 接口,这对您很有用;否则 - 尝试避免 <ctime>基于代码。

C++20

2020年批准的新标准版增加了:

  • 时区
  • 日历
  • 更多持续时间类型
  • 更多时间点类型
  • 更多时钟

超越标准:Howard Hinnant 的日期库

作为评论者@AndyG和@doug建议,霍华德Hinnant(欣南特)是“C ++日期和时间的人”,而他的工作实际上已经进入标准-但不是全部。

Howard 维护着他自己的图书馆/图书馆集,名为“Date”。

  • GitHub 上的“日期”库
  • “日期”库文档

它基于 C++11 <chrono>,但它的变化并不完全是在 C++20 中添加的;如果您使用的是 C++17 或更早版本,那么特别有用。它补充说:

  • 时区
  • 日历,包括朱利安和伊斯兰
  • 更多持续时间类型
  • 更多时间点类型

我假设最终,这里的所有好东西都会标准化,但这还没有发生。


以上是C++中是否有任何日期时间模块的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>