使用
gmtime
函式或localtime
函式將time_t
型別的時間日期轉換為
struct tm型別:
使用time
函式返回的是乙個
long
值,該值對使用者的意義不大,一般不能根據其值確定具體的年、月、日等資料。
gmtime
函式可以方便的對
time_t
型別資料進行轉換
,將其轉換為
tm結構的資料方便資料閱讀。
gmtime
函式的原型如下:
struct tm *gmtime(time_t *timep);
localtime
函式的原型如下:
struct tm *localtime(time_t *timep);
將引數timep
所指的time_t
型別資訊轉換成實際所使用的時間日期表示方法,將結果返回到結構
tm結構型別的變數。
gmtime
函式用來存放實際日期時間的結構變數是靜態分配的,每次呼叫
gmtime
函式都將重寫該結構變數。如果希望儲存結構變數中的內容,必須將其複製到
tm結構的另乙個變數中。
gmtime
函式與localtime
函式的區別
:
gmtime
函式返回的時間日期未經時區轉換,是
utc時間
(又稱為世界時間,即格林尼治時間)。
localtime
函式返回當前時區的時間,
轉換日期時間表示形式
time_t
型別轉換為
struct tm
型別示例
:
#include
#include
int main()
;/*指標字元陣列*/
time_t t;
struct tm *p;
t=time(null);/*
獲取從2023年1
月1日零時到現在的秒數,儲存到變數t中
*/ p=gmtime(&t); /*變數t
的值轉換為實際日期時間的表示格式*/
printf("%d
年%02d
月%02d
日",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
printf(" %s ", wday[p->tm_wday]);
printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec);
return 0; }
注意:p=gmtime(&t);
此行若改為
p=localtime(&t);
則返回當前時區的時間
②
使用
mktime
函式將struct tm
型別的時間日期轉換為
time_t型別:
表頭檔案
#include
定義函式
time_t mktime(strcut tm * timeptr);
函式說明
mktime()
用來將引數
timeptr
所指的tm
結構資料轉換成從公元
2023年1
月1日0
時0分0
秒算起至今的
utc時間所經過的秒數。
返回值
返回經過的秒數。
日期轉換為秒數示例
:
#include
#include
int main()
printf("1970/01/01 00:00:00~%d/%02d/%02d %02d:%02d:%02d共%d
秒\n",
stm.tm_year+1900,stm.tm_mon,stm.tm_mday,
stm.tm_hour,stm.tm_min,stm.tm_sec,t);
return 0; }
time t和struct tm之間的轉化
time t和struct tm之間的轉化 time t和struct tm結構體 1 ubuntu man文件對time t的解釋 從utc 1970年1月1日0時0分0秒開始經過的描述。例如time t tt 2 可以認為是從utc 1970年1月1日0時0分0秒開始經過了2秒的時間。2 ubu...
CRT中的時間 time t和tm
時間處理時實際專案中經常碰到的問題,這裡介紹最常用的時間處理函式。首先介紹基本的時間概念。時間一般分為兩種,一種是本地時間 local time 一種是協調世界時間 coordinated universal time utc 也就是傳說中的格林威治時間。本地時間與utc時間之間的差即為時差,比如,...
CRT中的時間 time t和tm
時間處理時實際專案中經常碰到的問題,這裡介紹最常用的時間處理函式。首先介紹基本的時間概念。時間一般分為兩種,一種是本地時間 local time 一種是協調世界時間 coordinated universal time utc 也就是傳說中的格林威治時間。本地時間與utc時間之間的差即為時差,比如,...