比較常用的時間函數有time(),localtime(),asctime(),和gmtime()。
函數time()的原型爲:
time_t time(time_t *time);
函數time()返回系統的當前日曆時間,如果系統丟失時間設置,則函數返回-1。
對函數time的調用,既可以使用空指針,也可以使用指向time_t類型變量的指針。
函數localtime()的原型爲:
struct tm*localtime(const time_t *time);
函數localtime(),指向以tm結構形式time(時間)的一個指針。該事件表示爲本地時間(計算機上的時間)。
變元time指針一般通過調用函數time()獲得。
函數asctime()的原型爲:
char *asctime(const struct tm*ptr);
函數asctime()返回指向一個串的指針,其中保存ptr所指結構中存儲的信息的變換形式,
具體格式如下:
day month date hours:minutes:seconds year \n \0
例如:
Fir Apr 15 9:15:12 2015
由ptr指向的結構一般是通過調用localtime()或gmtime()得到的。
保存asctime()返回的格式化時間串空間是靜態空間變量,因此每次調用asctime()
時都用新串沖掉該靜態字符數組中的原值。希望保存以前的結果是,應該複製它到別處。
函數gmtime的原型爲:
struct tm *gmtime(const time_t *time);
函數gmtime()返回一個指針,指針指向以tm結構形式的分解格式time。時間用UTC(coordinated
universal time)即格林尼治時間表示,time指針一般是通過調用time()取得。
如果系統不支持UTC,則該函數返回空指針。
#include<stdio.h>
#include<time.h>
int main()
{
struct tm*local;
time_t tm;
tm=time(NULL);
local=localtime(&tm);
printf("Local time and date: %s\n",asctime(local));
local=gmtime(&tm);
printf("UTC time and date: %s\n",asctime(local));
return 0;
}