時間戳轉換爲日期格式 C/C++ 學習日記 新手講解

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

發佈了4 篇原創文章 · 獲贊 4 · 訪問量 153
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章