獲取當前時間---使用標準C

大家可能在開發過程中經常會遇到獲取當前系統時間的問題。那麼除了MFC中的CTime類外,有沒有其他的方法呢? 答案是肯定的。

很多C/C++的初學者在學習這門語言的時候,經常是隻注意其語法,而其庫函數卻知道的很少。有的知道一些,但是卻很少應用。筆者在這裏建議大家,經常去看看標準C庫,標準C++庫。如果能在開發過程中經常使用上這些庫函數,將會使我們的開發過程變得簡單不少。

那麼標準C中如何獲取本地時間呢? 在這之前請你去找一下time.h這個頭文件,或許你會在裏邊找到一些你以前不知道的東西。

在time.h中定義了一個時間的結構體tm。這個結構體定義如下

#ifndef _TM_DEFINED
struct tm {
        int tm_sec;     /* 秒 – 取值區間爲[0,59] */
        int tm_min;     /* 分 - 取值區間爲[0,59] */
        int tm_hour;    /* 時 - 取值區間爲[0,23] */
        int tm_mday;    /* 一個月中的日期 - 取值區間爲[1,31] */
        int tm_mon;     /* 月份(從一月開始,0代表一月) - 取值區間爲[0,11] */
        int tm_year;    /* 年份,其值等於實際年份減去1900 */
        int tm_wday;    /* 星期 – 取值區間爲[0,6],其中0代表星期天,1代表星期一,以此類推 */
        int tm_yday;    /* 從每年的1月1日開始的天數 – 取值區間爲[0,365],其中0代表1月1日,1代表1月2日,以此類推 */
        int tm_isdst;   /* 夏令時標識符,實行夏令時的時候,tm_isdst爲正。不實行夏令時的進候,tm_isdst爲0;不瞭解情況時,tm_isdst()爲負。*/
        };
#define _TM_DEFINED
#endif

 

請注意看後邊的註釋哦。

另外有兩個函數

struct tm * gmtime(const time_t *timer);                                          
struct tm * localtime(const time_t * timer);

前者用來獲取UTC時間,後者用來獲取本地時間。那麼下邊的事情就不用我再說了吧。

最後提醒各位,經常看看庫函數喔。

發佈了24 篇原創文章 · 獲贊 1 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章