命名空间
变体
操作

tm

来自 cppreference.com
< 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
自 1 月以来的月份数 - [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 时间组件 (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.27.1/3 时间组件 (p: 284)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.27.1/3 时间组件 (p: 388)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.23.1/3 时间组件 (p: 338)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.12.1 时间组件

[编辑] 另请参阅

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