命名空间
变体
操作

tm

来自 cppreference.cn
< c‎ | 时间
定义于头文件 <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 时间的组成部分 (p: 待定)
  • 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