📅  最后修改于: 2023-12-03 14:59:50.461000             🧑  作者: Mango
localtime()函数是C语言、C++语言的标准库函数,其作用是将格林威治时间(GMT)转换成本地时间(local time)并以结构体tm的形式返回转换后的时间。在程序开发中,我们常常需要将时间戳转化为可读性强的本地时间格式,此时localtime()函数就非常有用。
struct tm *localtime(const time_t *timep);
timep:指向要被转换的时间戳的指针,类型time_t。
返回值:指向tm结构体的指针。
使用localtime()函数需要引入头文件
#include <iostream>
#include <ctime>
int main()
{
time_t rawtime;
struct tm * timeinfo;
char buffer[80];
time (&rawtime); // 获取当前时间戳
timeinfo = localtime(&rawtime); // 将当前时间戳转化为本地时间信息结构体
strftime(buffer,80,"%Y-%m-%d %H:%M:%S",timeinfo); // 将本地时间信息结构体转化为字符串格式
std::cout << buffer << std::endl;
return 0;
}
运行上述程序,输出结果为:
2021-08-26 08:16:36
程序中,通过time()函数获取当前的时间戳,然后用localtime()函数将时间戳转化为本地时间信息结构体,最后将本地时间信息结构体转化为人们可读的字符串格式(例如:“2021-08-26 08:16:36”)。
结构体tm是从时间类型time_t中提取并分解出的时间信息,其包含的成员变量如下:
|成员变量|类型|取值范围|描述| |:--:|:--:|:--:|:--:| |tm_sec|int|0~59|表示秒数| |tm_min|int|0~59|表示分钟数| |tm_hour|int|0~23|表示小时数| |tm_mday|int|1~31|表示一个月中的第几天| |tm_mon|int|0~11|表示月份,0表示1月,1表示2月,以此类推| |tm_year|int|1900年至今的年数|-1900表示1900年,0表示1901年,1表示1902年,以此类推| |tm_wday|int|0~6|表示一周中的第几天,0表示周日,1表示周一,以此类推| |tm_yday|int|0~365|表示一年中的第几天,0表示1月1日,以此类推| |tm_isdst|int|0或1|-1表示无法确定是否为夏令时;0表示不是夏令时;1表示夏令时|