📜  C++ localtime()(1)

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

C++ localtime()函数介绍

简介

在C++中,localtime()是一个返回指向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],以1月1日为一年的第一天 
  int tm_isdst;  // 夏令时标志,正数表示夏令时,零表示不使用,负数表示不确定 
};
函数原型
struct tm * localtime(const time_t * time);

localtime()函数的功能是将time指向的time_t类型的时间转换为本地时间的tm结构体。

参数说明
  • time:指向要转换的时间的time_t类型指针。
返回值说明

该函数返回指向tm结构体的指针。如果指针为NULL,则表示发生错误。

示例代码
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    // 获取当前时间
    time_t now = time(nullptr);
    // 将当前时间转换为本地时间
    struct tm* localtm = localtime(&now);
    // 输出本地时间信息
    cout << "Year: " << 1900 + localtm->tm_year << endl;
    cout << "Month: " << 1 + localtm->tm_mon << endl;
    cout << "Day: " << localtm->tm_mday << endl;
    cout << "Time: " << localtm->tm_hour << ":" << localtm->tm_min << ":" << localtm->tm_sec << endl;
    
    return 0;
}

以上程序获取当前时间,并使用localtime()函数将其转换为本地时间的tm结构体。然后输出年、月、日以及具体时间。可以看出,程序输出的时间与系统时间相同,且结构清晰,十分方便。