std::tm
来自cppreference.com
<tbody>
</tbody>
| 在标头 <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 |
夏令时标志。值若夏令时有效则为正,若无效则为零,若无可用信息则为负 (公开成员对象) |
- ↑ 范围允许正闰秒。不允许同一分钟内有两个闰秒(C89 中错误地引入范围
[0,61],而在 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); // 注意隐含的尾部 '\n'
}
可能的输出:
Sat Jan 1 00:00:00 2022
参阅
| 转换纪元起时间为以本地时间表示的日历时间 (函数) | |
| 转换纪元起时间为以协调世界时表示的日历时间 (函数) | |
tm 的 C 文档
| |