📜  C中的time.h localtime()函数与示例(1)

📅  最后修改于: 2023-12-03 15:14:25.083000             🧑  作者: Mango

C语言中的time.h localtime()函数

time.h库是C语言中处理时间相关的库之一,其中localtime()函数是很常用的一个函数。

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()函数的示例

下面是一个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类型的时间转换成人们熟悉的时间格式,是比较基础的函数之一。