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);
自己动手试一试 »
定义和用法
mktime() 函数从 tm 结构创建日期的 timestamp。结构表示的时间被视为计算机的本地时区。
mktime() 函数还会通过更正溢出日期并填充 tm_wday 和 tm_yday 成员来更改 tm 结构。
mktime() 函数定义在 <ctime>
头文件中。
timestamp 通常表示自 Unix 纪元(1970 年 1 月 1 日)以来的秒数,但这取决于库的实现方式,因此最好只与设计用于处理 timestamp 的函数一起使用,例如 localtime()
和 difftime()
。
mktime() 函数使用 tm 结构中的以下成员来创建 timestamp
- tm_sec - 分钟内的秒数
- tm_min - 小时内的分钟数
- tm_hour - 一天中的小时数(0 到 23)
- tm_mday - 一个月中的第几天
- tm_mon - 月份(0 到 11,1 月为 0)
- 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; // 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 timestamp,表示结构中给出的日期和时间。 |
---|