#include <stdio.h>
#include <time.h>
#include <stdlib.h>
//时间戳转换为日期格式
void timestampToTime(char* timeStamp, char* dateTime, int dateTimeSize)
{
time_t tTimeStamp = atoll(timeStamp);
struct tm* pTm = gmtime(&tTimeStamp);
strftime(dateTime, dateTimeSize, "%Y-%m-%d %H:%M:%S", pTm);
}
这是一个时间戳转换为日期格式函数
将timeStamp(时间戳)进行转化后赋值给 dateTime(日期格式)
dateTimeSize为最终结果可存放的字符数。(赋值32,暂可不管)
分解看:
time_t tTimeStamp = atoll(timeStamp);
time_t 的本质(数据类型)为long long类型(长整型)
atoll函数:将字符串转化为long long类型变量
struct tm* pTm = gmtime(&tTimeStamp);
tm 结构的指针,该结构带有被填充的时间信息(见附录)
gmtime 获取 GMT 时间 填充到 结构体 tm 中
strftime(dateTime, dateTimeSize, "%Y-%m-%d %H:%M:%S", pTm);
dateTime中存放dateTimeSize个字符。
该函数返回向dateTime指向的字符串。
"%Y-%m-%d %H:%M:%S"为输出格式,pTm为被提取的时间信息。
附录:
atolll函数使用实例
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; /* 夏令时 */
};
tm 结构的指针,该结构带有被填充的时间信息