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

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

C中的time.h localtime()函数

localtime()是C语言中有关日期和时间的库,用于将任意时间戳表示的时间转换为本地时间(localtime),如年、月、日、时、分、秒等,并返回一个结构体指针。

其函数原型如下:

struct tm *localtime(const time_t *timep);

其中,timep表示要转换的时间戳指针。返回一个指向tm结构体的指针,该结构体表示时间的分解值。

使用该函数需要包含头文件<time.h>,如下所示:

#include <time.h>

下面是一段示例代码:

#include <stdio.h>
#include <time.h>

int main() {
    // 获取当前时间戳
    time_t timestamp = time(NULL);

    // 转换为本地时间并输出
    struct tm *local_time = localtime(&timestamp);
    printf("当前本地时间为:%d-%d-%d %d:%d:%d\n",
           local_time->tm_year + 1900, local_time->tm_mon + 1, local_time->tm_mday,
           local_time->tm_hour, local_time->tm_min, local_time->tm_sec);

    return 0;
}

代码执行结果如下:

当前本地时间为:2022-3-3 11:15:9

在输出的格式控制中,local_time->tm_year+1900表示当前年份相对于1900年的偏移量加上1900,而local_time->tm_mon+1表示当前月份加上1,因为tm结构体中的月份是从0开始计数的。

如果要将本地时间转换为时间戳,可以使用函数mktime(),函数原型如下:

time_t mktime(struct tm *tm);

其中,tm表示要转换为时间戳的本地时间结构体指针。返回一个time_t类型的时间戳。

需要注意的是,localtime()mktime()函数通常用于不同的场合,前者用于把时间戳转换为本地时间,后者用于把本地时间转换为时间戳。常常在编写日期和时间处理、时区转换等程序时被使用。

以上就是C语言中关于日期和时间的localtime()函数的简要介绍,对于C语言开发者来说,熟练掌握此函数以及其他日期和时间相关函数,可以有效地增强编程能力。