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)); // 注意隐含的末尾 '\n'
}

可能的输出:

Sat Jan  1 00:00:00 2022

引用

  • C23 标准(ISO/IEC 9899:2024):
  • 7.27.1/3 Components of time (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.27.1/3 Components of time (第 284 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.27.1/3 Components of time (第 388 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.23.1/3 Components of time (第 338 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.12.1 Components of time

参阅

将从纪元开始的时间转换成以本地时间表示的日历时间
(函数)
将从纪元开始的时间转换成以协调世界时(UTC)表示的日历时间
(函数)