linux中獲取時間的幾種方法_第1頁
linux中獲取時間的幾種方法_第2頁
linux中獲取時間的幾種方法_第3頁
linux中獲取時間的幾種方法_第4頁
linux中獲取時間的幾種方法_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、linux中獲取時間的幾種方法asctime(將時間和日期以字符串格式表示)相關函數(shù)time,ctime,gmtime,localtime表頭文件#include<time.h>定義函數(shù)char*asctime(conststructtm*timeptr);函數(shù)說明asctime()將參數(shù)timeptr所指的tm結構中的信息轉(zhuǎn)換成真實世界所使用的時間日期表示方法,然后將結果以字符串形態(tài)返回。此函數(shù)已經(jīng)由時區(qū)轉(zhuǎn)換成當?shù)貢r間,字符串格式為:“WedJun3021:49:081993n”返回值若再調(diào)用相關的時間日期函數(shù),此字符串可能會被破壞。此函數(shù)與ctime不同處在于傳入的參數(shù)是不同的

2、結構。附加說明返回一字符串表示目前當?shù)氐臅r間日期。范例#include<time.h>main()time_ttimep;time(&timep);printf(“%s”,asctime(gmtime(&timep);執(zhí)行SatOct2802:10:062000ctime(將時間和日期以字符串格式表示)相關函數(shù)time,asctime,gmtime,localtime表頭文件#include<time.h>定義函數(shù)char*ctime(consttime_t*timep);函數(shù)說明ctime()將參數(shù)timep所指的time_t結構中的信息轉(zhuǎn)換成真實世界

3、所使用的時間日期表示方法,然后將結果以字符串形態(tài)返回。此函數(shù)已經(jīng)由時區(qū)轉(zhuǎn)換成當?shù)貢r間,字符串格式為“WedJun3021:49:081993n”。若再調(diào)用相關的時間日期函數(shù),此字符串可能會被破壞。返回值返回一字符串表示目前當?shù)氐臅r間日期。范例#include<time.h>main()time_ttimep;time(&timep);printf(“%s”,ctime(&timep);執(zhí)行SatOct2810:12:052000gettimeofday(取得目前的時間)相關函數(shù)time,ctime,ftime,settimeofday表頭文件#include<

4、sys/time.h>#include<unistd.h>定義函數(shù)intgettimeofday(structtimeval*tv,structtimezone*tz)函數(shù)說明gettimeofday()會把目前的時間有tv所指的結構返回,當?shù)貢r區(qū)的信息則放到tz所指的結構中。timeval結構定義為:structtimevallongtv_sec;/*秒*/longtv_usec;/*微秒*/;timezone結構定義為:structtimezoneinttz_minuteswest;/*和Greenwich時間差了多少分鐘*/inttz_dsttime;/*日光節(jié)約時間的

5、狀態(tài)*/;上述兩個結構都定義在/usr/include/sys/time.h。tz_dsttime所代表的狀態(tài)如下DST_NONE/*不使用*/DST_USA/*美國*/DST_AUST/*澳洲*/DST_WET/*西歐*/DST_MET/*中歐*/DST_EET/*東歐*/DST_CAN/*加拿大*/DST_GB/*大不列顛*/DST_RUM/*羅馬尼亞*/DST_TUR/*土耳其*/DST_AUSTALT/*澳洲(1986年以后)*/返回值成功則返回0,失敗返回1,錯誤代碼存于errno。附加說明EFAULT指針tv和tz所指的內(nèi)存空間超出存取權限。范例#include<sys/ti

6、me.h>#include<unistd.h>main()structtimevaltv;structtimezonetz;gettimeofday(&tv,&tz);printf(“tv_sec;%nd”,tv,.tv_sec);printf(“tv_usec;%nd”,tv.tv_usec);printf(“tz_minuteswest;%nd”,tz.tz_minuteswest);printf(“tz_dsttime,%nd”,tz.tz_dsttime);執(zhí)行tv_sec:974857339tv_usec:136996tz_minuteswest:-

7、540tz_dsttime:0gmtime(取得目前時間和日期)相關函數(shù)time,asctime,ctime,localtime表頭文件#include<time.h>定義函數(shù)structtm*gmtime(consttime_t*timep);函數(shù)說明gmtime()將參數(shù)timep所指的time_t結構中的信息轉(zhuǎn)換成真實世界所使用的時間日期表示方法,然后將結果由結構tm返回。結構tm的定義為structtminttm_sec;inttm_min;inttm_hour;inttm_mday;inttm_mon;inttm_year;inttm_wday;inttm_yday;in

8、ttm_isdst;inttm_sec代表目前秒數(shù),正常范圍為0-59,但允許至61秒inttm_min代表目前分數(shù),范圍0-59inttm_hour從午夜算起的時數(shù),范圍為0-23inttm_mday目前月份的日數(shù),范圍01-31inttm_mon代表目前月份,從一月算起,范圍從0-11inttm_year從1900年算起至今的年數(shù)inttm_wday一星期的日數(shù),從星期一算起,范圍為0-6inttm_yday從今年1月1日算起至今的天數(shù),范圍為0-365inttm_isdst日光節(jié)約時間的旗標此函數(shù)返回的時間日期未經(jīng)時區(qū)轉(zhuǎn)換,而是UTC時間。返回值返回結構tm代表目前UTC時間范例#inc

9、lude<time.h>main()char*wday=Sun,Mon,Tue,Wed,Thu,Fri,Sat;time_ttimep;structtm*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;%nd”,wdayp->tm_wday,p->tm_hour,p->tm_min,p->tm_sec);執(zhí)行2000/10/28Sat8:15:38localt

10、ime(取得當?shù)啬壳皶r間和日期)相關函數(shù)time,asctime,ctime,gmtime表頭文件#include<time.h>定義函數(shù)structtm*localtime(consttime_t*timep);函數(shù)說明localtime()將參數(shù)timep所指的time_t結構中的信息轉(zhuǎn)換成真實世界所使用的時間日期表示方法,然后將結果由結構tm返回。結構tm的定義請參考gmtime()。此函數(shù)返回的時間日期已經(jīng)轉(zhuǎn)換成當?shù)貢r區(qū)。返回值返回結構tm代表目前的當?shù)貢r間。范例#include<time.h>main()char*wday=“Sun”,”Mon”,”Tue”,

11、”Wed”,”Thu”,”Fri”,”Sattime_ttimep;structtm*p;time(&timep);p=localtime(&timep);/*取得當?shù)貢r間*/printf(“%d%d%d”,(1900+p->tm_year),(l+p->tm_mon),p->tm_mday);printf(“%s%d:%d:%nd”,wdayp->tm_wday,p->tm_hour,p->tm_min,p->tm_sec);執(zhí)行2000/10/28Sat11:12:22mktime(將時間結構數(shù)據(jù)轉(zhuǎn)換成經(jīng)過的秒數(shù))相關函數(shù)time,

12、asctime,gmtime,localtime表頭文件#include<time.h>定義函數(shù)time_tmktime(strcuttm*timeptr);函數(shù)說明mktime()用來將參數(shù)timeptr所指的tm結構數(shù)據(jù)轉(zhuǎn)換成從公元1970年1月1日0時0分0秒算起至今的UTC時間所經(jīng)過的秒數(shù)。返回值返回經(jīng)過的秒數(shù)。范例/*用time()取得時間(秒數(shù)),利用localtime()轉(zhuǎn)換成structtm再利用mktine的秒數(shù)*/#include<time.h>main()time_ttimep;strcuttm*p;time(&timep);printf(

13、“time():%nd”,timep);p=localtime(&timep);timep=mktime(p);struct tm 轉(zhuǎn)換成原來n” ,timep);printf(“time()執(zhí)行time():974943297time()->localtime()->mktime():974943297settimeofday(設置目前時間)相關函數(shù)time,ctime,ftime,gettimeofday表頭文件#include<sys/time.h>#include<unistd.h>定義函數(shù)intsettimeofday(conststruc

14、ttimeval*tv,conststructtimezone*tz);函數(shù)說明settimeofday()會把目前時間設成由tv所指的結構信息,當?shù)貢r區(qū)信息則設成tz所指的結構。詳細的說明請參考gettimeofday()。注意,只有root權限才能使用此函數(shù)修改時間。返回值成功則返回0,失敗返回1,錯誤代碼存于errno。錯誤代碼EPERM并非由root權限調(diào)用settimeofday(),權限不夠。EINVAL時區(qū)或某個數(shù)據(jù)是不正確的,無法正確設置時間。time(取得目前的時間)相關函數(shù)ctime,ftime,gettimeofday表頭文件#include<time.h>定義函數(shù)ti

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論