std::tm

来自cppreference.com
< cpp‎ | chrono‎ | c
 
 
工具库
语言支持
类型支持(基本类型、RTTI)
库功能特性测试宏 (C++20)
动态内存管理
程序工具
协程支持 (C++20)
变参数函数
调试支持
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
初等字符串转换
(C++17)
(C++17)

 
 
 
在标头 <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

参阅

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