C语言mktime():将tm时间转换为秒
mktime() 是 C语言的一个标准库函数,定义在
mktime() 函数的功能是将 struct tm 结构体类型的时间信息转换成 time_t 类型的时间,也就是自 1970 年 1 月 1 日 00:00:00 以来的秒数。
mktime() 函数的原型如下:
【实例】以下的 C语言示例演示了用 mktime() 函数将一个 tm 结构体转换为 time_t 类型,并打印结果。
<time.h>
头文件中。mktime() 函数的功能是将 struct tm 结构体类型的时间信息转换成 time_t 类型的时间,也就是自 1970 年 1 月 1 日 00:00:00 以来的秒数。
mktime() 函数的原型如下:
time_t mktime(struct tm* timeptr);
参数
timeptr:指向 struct tm 结构的指针,即要转换的 tm 时间信息。返回值
返回自 1970 年 1 月 1 日 00:00:00 到现在所经过的秒数。如果转换失败,函数返回 -1。【实例】以下的 C语言示例演示了用 mktime() 函数将一个 tm 结构体转换为 time_t 类型,并打印结果。
#include <stdio.h> #include <time.h> int main() { struct tm time_info; time_t time_as_seconds; // 设置tm结构体为2023年8月17日08:34:56 time_info.tm_year = 2023 - 1900; // 年份从1900年开始 time_info.tm_mon = 8 - 1; // 月份从0开始 time_info.tm_mday = 17; // 日 time_info.tm_hour = 8; // 小时 time_info.tm_min = 34; // 分钟 time_info.tm_sec = 56; // 秒 time_info.tm_isdst = -1; // 让mktime()自动检测夏令时 // 转换为time_t类型 time_as_seconds = mktime(&time_info); if (time_as_seconds != (time_t)(-1)) { printf("时间转换为秒数成功: %ld\n", (long)time_as_seconds); } else { printf("时间转换失败\n"); } return 0; }输出结果为:
时间转换为秒数成功: 1692232496