linux中獲取系統時間的幾種方法

2022-01-19 21:03:56 字數 4712 閱讀 9941

asctime(將時間和日期以字串格式表示)

相關函式

time,ctime,gmtime,localtime

表頭檔案

#include

定義函式

char * asctime(const struct tm * timeptr);

函式說明

asctime()將引數timeptr所指的tm結構中的資訊轉換成真實世界所使用的時間日期表示方法,然後將結果以字串形態返回。

此函式已經由時區轉換成當地時間,字串格式為:「wed jun 30 21:49:08 1993\n」

返回值若再呼叫相關的時間日期函式,此字串可能會被破壞。

此函式與ctime不同處在於傳入的引數是不同的結構。

附加說明

返回一字串表示目前當地的時間日期。

範例#include

main()

執行sat oct 28 02:10:06 2000

ctime(將時間和日期以字串格式表示)

相關函式

time,asctime,gmtime,localtime

表頭檔案

#include

定義函式

char *ctime(const time_t *timep);

函式說明

ctime()將引數timep所指的time_t結構中的資訊轉換成真實世界所使用的時間日期表示方法,然後將結果以字串形態返回。

此函式已經由時區轉換成當地時間,字串格式為「wed jun 30 21 :49 :08 1993\n」。

若再呼叫相關的時間日期函式,此字串可能會被破壞。

返回值返回一字串表示目前當地的時間日期。

範例#include

main()

執行sat oct 28 10 : 12 : 05 2000

gettimeofday(取得目前的時間)

相關函式

time,ctime,ftime,settimeofday

表頭檔案

#include

#include

定義函式

int gettimeofday ( struct timeval * tv , struct timezone * tz )

函式說明

gettimeofday()會把目前的時間有tv所指的結構返回,當地時區的資訊則放到tz所指的結構中。 

timeval結構定義為:

struct timeval;

timezone 結構定義為:

struct timezone; 

上述兩個結構都定義在/usr/include/sys/time.h。

tz_dsttime 所代表的狀態如下 

dst_none /*不使用*/

dst_usa /*美國*/

dst_aust /*澳洲*/

dst_wet /*西歐*/

dst_met /*中歐*/

dst_eet /*東歐*/

dst_can /*加拿大*/

dst_gb /*大不列顛*/

dst_rum /*羅馬尼亞*/

dst_tur /*土耳其*/

dst_austalt /*澳洲(2023年以後)*/

返回值成功則返回0,失敗返回-1,錯誤**存於errno。

附加說明efault指標tv和tz所指的記憶體空間超出訪問許可權。

範例#include

#include

main()

執行tv_sec: 974857339

tv_usec:136996

tz_minuteswest:-540

tz_dsttime:0

gmtime(取得目前時間和日期)

相關函式

time,asctime,ctime,localtime

表頭檔案

#include

定義函式

struct tm*gmtime(const time_t*timep);

函式說明

gmtime()將引數timep 所指的time_t 結構中的資訊轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。 

結構tm的定義為 

struct tm ;

此函式返回的時間日期未經時區轉換,而是utc時間。

返回值返回結構tm代表目前utc 時間

範例#include

main();

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); }執行

2000/10/28 sat 8:15:38

localtime(取得當地目前時間和日期)

相關函式

time, asctime, ctime, gmtime

表頭檔案

#include

定義函式

struct tm *localtime(const time_t * timep);

函式說明

localtime()將引數timep所指的time_t結構中的資訊轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。

結構tm的定義請參考gmtime()。

此函式返回的時間日期已經轉換成當地時區。

返回值返回結構tm代表目前的當地時間。

範例#include

main();

time_t timep;

struct tm *p;

time(&timep);

p=localtime(&timep); /*取得當地時間*/

printf (「%d%d%d 」, (1900+p->tm_year),( l+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); }執行

2000/10/28 sat 11:12:22

mktime(將時間結構資料轉換成經過的秒數)

相關函式

time,asctime,gmtime,localtime

表頭檔案

#include

定義函式

time_t mktime(strcut tm * timeptr);

函式說明

mktime()用來將引數timeptr所指的tm結構資料轉換成從公元2023年1月1日0時0分0 秒算起至今的utc時間所經過的秒數。

返回值返回經過的秒數。

範例/* 用time()取得時間(秒數),利用localtime() 轉換成struct tm 再利用mktine()將struct tm轉換成原來的秒數*/

#include

main()

執行time():974943297 time()->localtime()->mktime():974943297

settimeofday(設定目前時間)

相關函式

time,ctime,ftime,gettimeofday

表頭檔案

#include

#include

定義函式

int settimeofday ( const struct timeval *tv,const struct timezone *tz);

函式說明

settimeofday()會把目前時間設成由tv所指的結構資訊,當地時區資訊則設成tz所指的結構。

詳細的說明請參考gettimeofday()。

注意,只有root許可權才能使用此函式修改時間。

返回值成功則返回0,失敗返回-1,錯誤**存於errno。

錯誤**

eperm 並非由root許可權呼叫settimeofday(),許可權不夠。 

einval 時區或某個資料是不正確的,無法正確設定時間。

time(取得目前的時間)

相關函式

ctime,ftime,gettimeofday

表頭檔案

#include

定義函式

time_t time(time_t *t);

函式說明

此函式會返回從公元2023年1月1日的utc時間從0時0分0秒算起到現在所經過的秒數。

如果t 並非空指標的話,此函式也會將返回值存到t指標所指的記憶體。

返回值成功則返回秒數,失敗則返回((time_t)-1)值,錯誤原因存於errno中。

範例#include

mian()

linux中獲取系統時間的幾種方法

asctime 將時間和日期以字串格式表示 相關函式 time,ctime,gmtime,localtime 表頭檔案 include 定義函式 char asctime const struct tm timeptr 函式說明 asctime 將引數timeptr所指的tm結構中的資訊轉換成真實世...

獲取系統時間的幾種方法!!!

1.date day new date dateformat df new dateformat yyyy mm dd hh mm ss system.out.println df.format day 通過date類來獲取當前時間 2.date date new date string year ...

linux 獲取系統時間

通過以下函式可以統計裝置開機時間,關機時間,離線時間,距離1970.1.0.0.0的秒數。統計裝置的執行狀況!1.獲取系統當前時間距1970.1.0.0.0的秒數。通過獲取的秒數方便計算嵌入式裝置的離線時間。include void main 3.gettime 獲取當前系統時間 函式名稱 gett...