首页 > 编程笔记

C语言localtime():将time_t时间转换成tm时间

localtime() 是 C语言的一个标准库函数,定义在<time.h>头文件中。

localtime() 函数的功能是将 time_t 类型的时间转换为一个 tm 结构体类型的时间。如下是 tm 结构体类型的具体细节:
struct tm {
   int tm_sec;         /* 秒,范围通常是 0~59 */
   int tm_min;         /* 分,范围从 0~59 */
   int tm_hour;        /* 小时,范围从 0~23 */
   int tm_mday;        /* 一月中的第几天,范围从 1~31 */
   int tm_mon;         /* 月份,范围从 0~11 */
   int tm_year;        /* 自 1900 开始计算的年数 */
   int tm_wday;        /* 一周中的第几天,范围从 0~6 */
   int tm_yday;        /* 一年中的第几天,范围从 0~365  */
   int tm_isdst;       /* 夏令时标志 */   
};
localtime() 函数的原型如下:
struct tm* localtime(const time_t* timer);

参数

timer:要转换的时间。

返回值

返回一个指向 tm 结构体变量的指针,该变量存储了当前时间的各个组成部分。

【实例】以下的 C语言示例演示了用 localtime() 函数获取当前时间,并以各个组成部分的形式打印出来:
#include <stdio.h>
#include <time.h>

int main() {
  time_t current_time;
  struct tm* local_time;

  // 获取当前时间
  current_time = time(NULL);

  // 转换为本地时间结构体
  local_time = localtime(&current_time);

  // 检查是否转换成功
  if (local_time != NULL) {
      printf("当前时间是: %04d-%02d-%02d %02d:%02d:%02d\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          // 秒
      );
  } else {
      printf("时间转换失败\n");
  }

  return 0;
}
输出结果为:

当前时间是: 2023-08-17 11:03:19

推荐阅读