Namespaces
Variants

std:: tm

From cppreference.net
< cpp ‎ | chrono ‎ | c
定义于头文件 <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
夏令时标志。如果夏令时生效则为正数,不生效则为零,若信息不可用则为负数。
(公开成员对象)
  1. 范围允许存在正闰秒。同一分钟内不允许出现两个闰秒(范围 [ 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); // 注意隐式尾随的 '\n'
}

可能的输出:

Sat Jan  1 00:00:00 2022

参见

将自纪元起的时间转换为本地时间表示的日历时间
(函数)
将自纪元起的时间转换为协调世界时表示的日历时间
(function)
C 文档 for tm