std::tm
来自 cppreference.com
定义在头文件 <ctime> 中 |
||
struct tm; |
||
结构体保存一个日历日期和时间,并将其分解为各个组成部分。
内容 |
[编辑] 成员对象
int tm_sec |
分钟后的秒数 - [ 0, 61] (C++11 之前) [ 0, 60] (C++11 之后)[注释 1](公有成员对象) |
int tm_min |
小时后的分钟数 - [ 0, 59] (公有成员对象) |
int tm_hour |
午夜后的小时数 - [ 0, 23] (公有成员对象) |
int tm_mday |
一个月中的天数 - [ 1, 31] (公有成员对象) |
int tm_mon |
自一月份以来的月份数 - [ 0, 11] (公有成员对象) |
int tm_year |
自 1900 年以来的年份数 (公有成员对象) |
int tm_wday |
自星期日以来的天数 - [ 0, 6] (公有成员对象) |
int tm_yday |
自 1 月 1 日以来的天数 - [ 0, 365] (公有成员对象) |
int tm_isdst |
夏令时标志。如果夏令时有效,则值为正数;如果无效,则值为零;如果无信息可用,则值为负数。 (公有成员对象) |
- ↑ 范围允许正闰秒。同一分钟内不允许两次闰秒(
[
0,
61]
的范围是 C89 中引入的缺陷,在 C99 中已更正)。
[编辑] 注释
BSD、GNU 和 musl C 库支持两个额外的成员,这些成员已在 POSIX.1-2024 中标准化。
long tm_gmtoff |
UTC 以东的秒数 (公有成员对象) |
const char* tm_zone |
时区缩写 (公有成员对象) |
[编辑] 示例
运行此代码
#include <ctime> #include <iostream> int main() { std::tm tm{}; tm.tm_year = 2022 - 1900; tm.tm_mday = 1; std::mktime(&tm); std::cout << std::asctime(&tm); // note implicit trailing '\n' }
可能的输出
Sat Jan 1 00:00:00 2022
[编辑] 另请参阅
将自纪元以来的时间转换为表示为本地时间的日历时间 (函数) | |
将自纪元以来的时间转换为表示为协调世界时的日历时间 (函数) | |
C 文档 for tm
|