当前位置: C语言 -- 标准库 -- <time.h> -- struct tm

struct tm类型


描述:

该类型是一种结构类型,表示分解时间(broken-down time)。该类型包含日历时间的组成部分(例如:年、月、日、小时、分、秒等等。);该类型至少包含以下结构成员,结构成员的语义及其范围如注释描述:

int tm_sec; //秒 -- [0,60]
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; //夏令时标志

结构成员tm_sec的取值范围为[0,60],这样允许一个正闰秒(leap second)。

如果tm_isdst值为正值,表示夏令时生效;如果tm_isdst值为0,表示夏令时未生效;如果tm_isdst值为负值,表示无法确定夏令时是否生效。

上述成员在结构中的顺序ISO/IEC 9899:2018标准未作明确规定。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
/*类型struct tm范例*/

#include <stdio.h>
#include <time.h>

int main(void)
{
    struct tm currentTm = {.tm_year=117, .tm_mon=5, .tm_mday=30};
    mktime(&currentTm);
    printf("Current time:%s\n", asctime(&currentTm));

    return 0;
}


输出:

Current time:Fri Jun 30 00:00:00 2017


相关内容:
asctime struct tm类型分解时间转换为字符串的函数。
mktime struct tm类型分解时间转换为time_t类型日历时间的函数。