📅  最后修改于: 2023-12-03 15:14:25.083000             🧑  作者: Mango
time.h库是C语言中处理时间相关的库之一,其中localtime()函数是很常用的一个函数。
localtime()函数是将一个time_t类型的时间转换为struct tm类型的本地时间。它的函数原型如下:
struct tm *localtime(const time_t *timep);
其中,timep是一个指向time_t类型的指针,指向需要转换的时间。返回值则是一个表示本地时间的struct tm类型的指针。
struct tm结构体定义如下:
struct tm {
int tm_sec; /* Seconds (0-60) */
int tm_min; /* Minutes (0-59) */
int tm_hour; /* Hours (0-23) */
int tm_mday; /* Day of the month (1-31) */
int tm_mon; /* Month (0-11) */
int tm_year; /* Year - 1900 */
int tm_wday; /* Day of the week (0-6, Sunday = 0) */
int tm_yday; /* Day in the year (0-365, 1 Jan = 0) */
int tm_isdst; /* Daylight saving time */
};
其中,tm_sec表示秒数,tm_min表示分钟数,tm_hour表示小时数,tm_mday表示一个月中的第几天,tm_mon表示月份(0-11),tm_year表示年份减去1900,tm_wday表示一周中的第几天(0-6,星期日为0),tm_yday表示一年中的第几天,tm_isdst为夏令时模式。
下面是一个localtime()函数的示例代码,该代码将time_t类型的时间转换为struct tm类型,并输出本地时间的各个字段。
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t t = time(NULL);
struct tm *local = localtime(&t);
printf("Local time: %d-%d-%d %d:%d:%d\n",
local->tm_year + 1900,
local->tm_mon + 1,
local->tm_mday,
local->tm_hour,
local->tm_min,
local->tm_sec);
return 0;
}
以上代码中,首先调用time()函数获取当前时间,然后调用localtime()函数转换为本地时间的struct tm类型,最后将各个字段输出。
localtime()函数是一个很实用的函数,可以把time_t类型的时间转换成人们熟悉的时间格式,是比较基础的函数之一。