struct tm类型

C中的struct tm类型他的成员赋值顺序是什么?年月日时分秒还是时分秒年月日?

在C中,struct tm 类型用于表示日历时间。它包含如下成员:

struct tm {
    int tm_sec;   /* 秒,范围从 0 到 59          */
    int tm_min;   /* 分钟,范围从 0 到 59          */
    int tm_hour;  /* 小时,范围从 0 到 23          */
    int tm_mday;  /* 一个月中的第几天,范围从 1 到 31 */
    int tm_mon;   /* 月份,范围从 0 到 11           */
    int tm_year;  /* 自 1900 年起的年数              */
    int tm_wday;  /* 一周中的第几天,范围从 0 到 6   */
    int tm_yday;  /* 一年中的第几天,范围从 0 到 365  */
    int tm_isdst; /* 夏令时,>0 表示夏令时,=0 表示非夏令时,<0 表示未知 */
};

顺序是:秒、分钟、小时、一个月中的第几天、月份、自1900年起的年数、一周中的第几天、一年中的第几天和夏令时。

例如,要表示2022年1月2日12时34分56秒,你可以这样赋值:

struct tm time_structure;
time_structure.tm_sec = 56;
time_structure.tm_min = 34;
time_structure.tm_hour = 12;
time_structure.tm_mday = 2;
time_structure.tm_mon = 0; // 0 表示 1 月,1 表示 2 月,依此类推
time_structure.tm_year = 122; // 122 表示从 1900 年开始的 2022 年