tm

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

保有拆分成其组分的日历日期和时间的结构体。

成员对象

int tm_sec 分后之秒 – [0, 61] (C99 前)[0, 60] (C99 起)[注 1]
int tm_min 时后之分 – [0, 59]
int tm_hour 自午夜起的小时 – [0, 23]
int tm_mday 月之日 – [1, 31]
int tm_mon 自 1 月起的月 – [0, 11]
int tm_year 自 1900 年起的年
int tm_wday 自星期日起的星期 – [0, 6]
int tm_yday 从 1 月 1 日起的日 – [0, 365]
int tm_isdst 夏时令标签。若夏时令有效则此值为正,若无效则为零,若无可用信息则为负。
注意

标准只强制前述成员按任一顺序存在。实现通常对此结构体添加额外的数据成员。

  1. 范围允许正的闰秒。不允许一分钟有二个闰秒( C89 的范围 0..61 是缺陷)。

示例

显示日历时间的起点。

#include <stdio.h>
#include <time.h>
 
int main(void)
{
    struct tm start = {.tm_mday=1};
    mktime(&start);
    printf("%s\n", asctime(&start));
}

可能的输出:

Mon Jan  1 00:00:00 1900

引用

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

参阅

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