C++ ctime mktime() 函数
例子
创建时间戳并打印其日期和时间
struct tm date;
time_t timestamp;
date.tm_year = 2023 - 1900; // Number of years since 1900
date.tm_mon = 12 - 1; // Number of months since January
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);
自己尝试一下 »
定义和用法
The mktime()
函数根据 tm
结构创建日期和时间的时间戳。结构体表示的时间被认为是在计算机的本地时区。
The mktime()
函数还会通过更正日期溢出并填充 tm_wday
和 tm_yday
成员来更改 tm
结构。
The mktime()
函数在 <ctime>
头文件中定义。
时间戳通常代表相对于 Unix 纪元(1970 年 1 月 1 日)的秒数,但它取决于库的实现方式,因此最好只将其与旨在处理时间戳的函数(如 localtime()
和 difftime()
)一起使用。
The mktime()
函数使用 tm
结构的以下成员来创建时间戳
- tm_sec - 分钟内的秒数
- tm_min - 小时内的分钟数
- tm_hour - 一天中的小时数(从 0 到 23)
- tm_mday - 月份中的某一天
- tm_mon - 月份(从 0 到 11,从一月开始)
- tm_year - 自 1900 年以来的年数
- tm_isdst - 夏令时生效时为 1,不生效时为 0,-1 表示使用计算机的时区设置
The mktime()
还会考虑日期的溢出和下溢。例如,下面的代码将 4 月 31 日正确解释为 5 月 1 日。
更多例子
例子
The mktime()
函数可以解释日期溢出
struct tm date;
time_t timestamp;
date.tm_year = 2024 - 1900; // Number of years since 1900
date.tm_mon = 4 - 1; // Number of months since January
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 时间戳,代表结构体中给定的日期和时间。 |
---|