C++ ctime mktime() 函数
示例
创建时间戳并打印其日期和时间:
struct tm date;
time_t timestamp;
date.tm_year = 2023 - 1900; // 自 1900 年以来的年数
date.tm_mon = 12 - 1; // 自一月以来的月数
date.tm_mday = 17;
date.tm_hour = 12;
date.tm_min = 30;
date.tm_sec = 1;
date.tm_isdst = -1;
timestamp = mktime(&date);
cout << ctime(×tamp);
亲自试一试 »
定义和用法
mktime() 函数根据 tm 结构体为日期和时间创建时间戳。该结构体表示的时间被视为计算机的本地时区时间。
mktime() 函数还会修改 tm 结构体,修正溢出的日期并填充 tm_wday 和 tm_yday 成员。
mktime() 函数定义在 <ctime> 头文件中。
时间戳通常表示相对于 Unix 纪元(1970 年 1 月 1 日)的秒数,但这取决于库的实现方式,因此最好只将其与设计用于处理时间戳的函数一起使用,例如 localtime() 和 difftime()。
mktime() 函数使用 tm 结构的以下成员来创建时间戳:
- tm_sec - 分钟内的秒数
- tm_min - 小时内的分钟数
- tm_hour - 一天内的小时数(0 到 23)
- tm_mday - 月份中的日期
- tm_mon - 月份(0 到 11,从一月开始)
- tm_year - 自 1900 年以来的年数
- tm_isdst - 夏令时生效时为 1,非夏令时生效时为 0,-1 表示使用计算机的时区设置
mktime() 函数还可以处理日期中的溢出和下溢。例如,以下代码会将 4 月 31 日正确解析为 5 月 1 日。
更多示例
示例
mktime() 函数可以解析溢出的日期:
struct tm date;
time_t timestamp;
date.tm_year = 2024 - 1900; // 自 1900 年以来的年数
date.tm_mon = 4 - 1; // 自一月以来的月数
date.tm_mday = 31;
date.tm_hour = 0;
date.tm_min = 0;
date.tm_sec = 0;
date.tm_isdst = -1;
timestamp = mktime(&date);
cout << ctime(×tamp);
亲自试一试 »
语法
mktime(struct tm * time);
参数值
| 参数 | 描述 |
|---|---|
| time | 必需。指向 tm 结构的指针。 |
技术细节
| 返回值: | 一个 time_t 时间戳,表示结构中给出的日期和时间。 |
|---|

