C語(yǔ)言中讀取時(shí)間日期的基本方法
C語(yǔ)言time()函數(shù):獲取當(dāng)前時(shí)間(以秒數(shù)表示)
頭文件:
#include <time.h>
定義函數(shù):
time_t time(time_t *t);
函數(shù)說(shuō)明:此函數(shù)會(huì)返回從公元 1970 年1 月1 日的UTC 時(shí)間從0 時(shí)0 分0 秒算起到現(xiàn)在所經(jīng)過(guò)的秒數(shù)。如果t 并非空指針的話,此函數(shù)也會(huì)將返回值存到t 指針?biāo)傅膬?nèi)存。
返回值:成功則返回秒數(shù),失敗則返回((time_t)-1)值,錯(cuò)誤原因存于errno 中。
范例
#include <time.h>
main(){
int seconds = time((time_t*)NULL);
printf("%d\n", seconds);
}
執(zhí)行結(jié)果:
9.73E+08
C語(yǔ)言gmtime()函數(shù):獲取當(dāng)前時(shí)間和日期
頭文件:
#include <time.h>
定義函數(shù):
struct tm *gmtime(const time_t *timep);
函數(shù)說(shuō)明:gmtime()將參數(shù)timep 所指的time_t 結(jié)構(gòu)中的信息轉(zhuǎn)換成真實(shí)世界所使用的時(shí)間日期表示方法,然后將結(jié)果由結(jié)構(gòu)tm 返回。
結(jié)構(gòu)tm 的定義為
struct tm{
int tm_sec; //代表目前秒數(shù), 正常范圍為0-59, 但允許至61 秒
int tm_min; //代表目前分?jǐn)?shù), 范圍0-59
int tm_hour; //從午夜算起的時(shí)數(shù), 范圍為0-23
int tm_mday; //目前月份的日數(shù), 范圍01-31
int tm_mon; //代表目前月份, 從一月算起, 范圍從0-11
int tm_year; //從1900 年算起至今的年數(shù)
int tm_wday; //一星期的日數(shù), 從星期一算起, 范圍為0-6
int tm_yday; //從今年1 月1 日算起至今的天數(shù), 范圍為0-365
int tm_isdst; //日光節(jié)約時(shí)間的旗標(biāo)
};
此函數(shù)返回的時(shí)間日期未經(jīng)時(shí)區(qū)轉(zhuǎn)換,而是UTC 時(shí)間。
返回值:返回結(jié)構(gòu)tm 代表目前UTC 時(shí)間。
范例
#include <time.h>
main(){
char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t timep;
struct tm *p;
time(&timep);
p = gmtime(&timep);
printf("%d%d%d", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday);
printf("%s%d;%d;%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
}
執(zhí)行結(jié)果:
2000/10/28 Sat 8:15:38
相關(guān)文章
Ubuntu20.04安裝使用jsoncpp、json-c庫(kù)的方法實(shí)例
C++中的三種繼承public,protected,private詳細(xì)解析
C++詳細(xì)分析講解函數(shù)參數(shù)的擴(kuò)展
如何用c++表驅(qū)動(dòng)替換if/else和switch/case語(yǔ)句
c++創(chuàng)建二維動(dòng)態(tài)數(shù)組與內(nèi)存釋放問(wèn)題

