1. 程式人生 > >C語言獲取系統時間方法

C語言獲取系統時間方法

需要利用C語言的時間函式time和localtime,具體說明如下:

一、函式介面介紹:

1、time函式。

形式為time_t time (time_t *__timer);

其中time_t為time.h定義的結構體,一般為長整型。

這個函式會獲取當前時間,並返回。 如果引數__timer非空,會儲存相同值到__timer指向的記憶體中。

time函式返回的為unix時間戳,即從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。

參考程式碼: #include < stdio.h >
#include < time.h >
int main( )
{
time_t nowtime;
struct tm *timeinfo;
time( &nowtime );
timeinfo = localtime( &nowtime );
int year, month, day;
year = timeinfo->tm_year + 1900;
month = timeinfo->tm_mon + 1;
day = timeinfo->tm_mday;
printf(“%d %d %d\n”, year, month, day);
return 0;
}
struct tm – 時間結構,time.h 定義如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
tm_year 從1900年計算,所以要加1900,
月tm_mon,從0計算,所以要加1
time( &nowtime ); 獲取時間
localtime ( &nowtime ); 轉為當地時間
由於是秒作為單位的,所以這並不是習慣上的時間,要轉為習慣上的年月日時間形式就需要另外一個函數了。

2、localtime函式。

形式為struct tm *localtime (const time_t *__timer);

其中tm為一個結構體,包含了年月日時分秒等資訊。

這種結構是適合用來輸出的。

二、參考程式碼:#include < stdio.h >
#include < time.h >
int main ()
{
time_t t;
struct tm * lt;
time (&t);//獲取Unix時間戳。
lt = localtime (&t);//轉為時間結構。
printf ( “%d/%d/%d %d:%d:%d\n”,lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//輸出結果
return 0;
}
注意事項:
struct tm中的tm_year 值為實際年減去1900, 所以輸出的時候要是lt->tm_year+1900。