c ++中是否有任何日期时间模块
Is there any date-time module in c++
C++有日期时间模块吗?
我在 google 中进行了一些研究,开始了解 <ctime>
头文件,但它超出了我的理解范围。
还有什么可以完成我的工作吗?
在 C++ 标准中:<chrono>
C++11
从 C++11 开始,标准库包含 date & time utilities, available in the <chrono>
header,在 std::chrono
命名空间中构造。
其中你会发现:
- 时钟
- 时间点
- 时长
- 灵活的 mechanism 用于从字符串解析日期和时间值
该库是高度模板化的,因此您可以使用您选择的类型作为原始表示(甚至 floating-point 类型),并设置您自己的分辨率。
使用示例:How to get current time and date in C++?
请注意,std::chrono
设施是 somewhat-compatible 旧的 <ctime>
header 类型。例如,“系统时钟”class has methods 用于与 <ctime>
时间表示形式 time_t
相互转换。如果您正在组合 C 和 C++ 代码,或者需要在某处公开 C 接口,这将对您很有用;否则 - 尝试 避免 <ctime>
基于代码。
C++20
2020年批准的新标准版本增加:
- 时区
- 日历
- 更多持续时间类型
- 更多时间点类型
- 更多时钟
超越标准:Howard Hinnant 的日期库
正如评论者@AndyG 和@doug 所建议的那样,Howard Hinnant 是 “C++ 日期和时间专家”,他的大部分工作实际上已经进入标准 - 但是不是全部。
Howard 维护着自己的 library/set-of-libraries,名为“Date”。
它基于C++11 <chrono>
,但它的变化并不完全是C++20中添加的;如果您使用的是 C++17 或更早版本,则特别有用。它添加:
- 时区
- 日历,包括儒略历和伊斯兰教
- 更多持续时间类型
- 更多时间点类型
- 周
我假设最终,这里所有的好东西都会被标准化,但这还没有发生。
C++有日期时间模块吗?
我在 google 中进行了一些研究,开始了解 <ctime>
头文件,但它超出了我的理解范围。
还有什么可以完成我的工作吗?
在 C++ 标准中:<chrono>
C++11
从 C++11 开始,标准库包含 date & time utilities, available in the <chrono>
header,在 std::chrono
命名空间中构造。
其中你会发现:
- 时钟
- 时间点
- 时长
- 灵活的 mechanism 用于从字符串解析日期和时间值
该库是高度模板化的,因此您可以使用您选择的类型作为原始表示(甚至 floating-point 类型),并设置您自己的分辨率。
使用示例:How to get current time and date in C++?
请注意,std::chrono
设施是 somewhat-compatible 旧的 <ctime>
header 类型。例如,“系统时钟”class has methods 用于与 <ctime>
时间表示形式 time_t
相互转换。如果您正在组合 C 和 C++ 代码,或者需要在某处公开 C 接口,这将对您很有用;否则 - 尝试 避免 <ctime>
基于代码。
C++20
2020年批准的新标准版本增加:
- 时区
- 日历
- 更多持续时间类型
- 更多时间点类型
- 更多时钟
超越标准:Howard Hinnant 的日期库
正如评论者@AndyG 和@doug 所建议的那样,Howard Hinnant 是 “C++ 日期和时间专家”,他的大部分工作实际上已经进入标准 - 但是不是全部。
Howard 维护着自己的 library/set-of-libraries,名为“Date”。
它基于C++11 <chrono>
,但它的变化并不完全是C++20中添加的;如果您使用的是 C++17 或更早版本,则特别有用。它添加:
- 时区
- 日历,包括儒略历和伊斯兰教
- 更多持续时间类型
- 更多时间点类型
- 周
我假设最终,这里所有的好东西都会被标准化,但这还没有发生。