命名空间
变体
操作

tm

来自 cppreference.cn
< c‎ | chrono
定义于头文件 <time.h>
struct tm;

结构体,用于保存日历日期和时间,并将其分解为各个组成部分。

目录

[编辑] 成员对象

int tm_sec
分钟后的秒数 – [061](C99 之前)[060](C99 起)[注 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. 范围允许正闰秒。不允许在同一分钟内出现两次闰秒(C89 范围 0..61 是一个缺陷)

[编辑] 示例

#include <stdio.h>
#include <time.h>
 
int main(void)
{
    struct tm start = {.tm_year = 2022 - 1900, .tm_mday = 1};
    mktime(&start);
    printf("%s", asctime(&start)); // note implicit trailing '\n'
}

输出

Sat Jan  1 00:00:00 2022

[编辑] 参考文献

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.27.1/3 时间组成部分 (页码:待定)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.27.1/3 时间组成部分 (页码:284)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.27.1/3 时间组成部分 (页码:388)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.23.1/3 时间组成部分 (页码:338)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.12.1 时间组成部分

[编辑] 参见

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