std::tm
在标头
<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 日起之日 – [ 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
参阅
转换纪元起时间为以本地时间表示的日历时间 (函数) |
|
转换纪元起时间为以协调世界时表示的日历时间 (函数) |