命名空间
变体
操作

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 月 1 日以来的天数 - [0365]
(公有成员对象)
int tm_isdst
夏令时标志。如果夏令时有效,则值为正数;如果无效,则值为零;如果无信息可用,则值为负数。
(公有成员对象)
  1. 范围允许正闰秒。同一分钟内不允许两次闰秒([061] 的范围是 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); // note implicit trailing '\n'
}

可能的输出

Sat Jan  1 00:00:00 2022

[编辑] 另请参阅

将自纪元以来的时间转换为表示为本地时间的日历时间
(函数) [编辑]
将自纪元以来的时间转换为表示为协调世界时的日历时间
(函数) [编辑]
C 文档 for tm