std::tm

< cpp‎ | chrono‎ | c
在标头 <ctime> 定义
struct tm;

保有拆分到各组分的日历日期和时间的结构体。

成员对象

int tm_sec
分后之秒 – [061] (C++11 前)[060] (C++11 起)[注 1]
(公开成员对象)
int tm_min
时后之分 – [059]
(公开成员对象)
int tm_hour
自午夜起之时 – [023]
(公开成员对象)
int tm_mday
月内日期 – [131]
(公开成员对象)
int tm_mon
自一月起之月 – [011]
(公开成员对象)
int tm_year
自 1900 起之年
(公开成员对象)
int tm_wday
自星期日起之日 – [06]
(公开成员对象)
int tm_yday
自一月 1 日起之日 – [0365]
(公开成员对象)
int tm_isdst
夏令时标志。值若夏令时有效则为正,若无效则为零,若无可用信息则为负
(公开成员对象)
  1. 范围允许正闰秒。不允许同一分钟内有两个闰秒(C89 中错误地引入范围 [061],而在 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

参阅

转换纪元起时间为以本地时间表示的日历时间
(函数)
转换纪元起时间为以协调世界时表示的日历时间
(函数)