📅  最后修改于: 2023-12-03 15:13:54.575000             🧑  作者: Mango
在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结构体。
该函数返回指向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结构体。然后输出年、月、日以及具体时间。可以看出,程序输出的时间与系统时间相同,且结构清晰,十分方便。