#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 結構的指針,該結構帶有被填充的時間信息