gmtime

gmtime

gmtime是把日期和時間轉換為格林威治(GMT)時間的函式。將參數time 所指的time_t 結構中的信息轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。

基本介紹

  • 中文名:gmtime
  • 包含頭檔案:time.h
  • 功能:返回tm結構的格林尼治時間
  • 原型:struct tm *gmtime(time_t *)
定義,舉例,時間,異同點,共同點,不同點,

定義

頭檔案:time.h
調用原型:struct tm *gmtime(const time_t *timeptr)
函式功能:返回tm結構的格林尼治時間(GMT)
tm結構定義:
    struct tm{                int tm_sec;            //取值[0,59],非正常情況下可到達61                int tm_min;            //取值同上                int tm_hour;            //取值[0,23]                int tm_mday;            //取值[1,31]                int tm_mon;            //取值[0,11]                int tm_year;            //1900年起距今的年數                int tm_wday;            //取值[0,6]                int tm_yday;            //取值[0,366]                int tm_isdst;            //夏令時標誌        };
返回值:如上所述

舉例

#include "stdio.h"#include "time.h"#include "stdlib.h"int main(void){    time_t t;    struct tm *gmt, *area;    tzset(); /*tzset()*/    t = time(NULL);    area = localtime(&t);    printf("Local time is: %s", asctime(area));    gmt = gmtime(&t);    printf("GMT is: %s", asctime(gmt));    return 0;}

時間

localtime的實現
testLocaltime.c---------------------------------------------------------#include <stdio.h>#include <time.h>void cur_time(void);int main(int argc,char **argv){cur_time();return 0;}void cur_time(void){char *wday[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};time_t timep;struct tm *p;time(&timep);p=localtime(&timep); /* 獲取當前時間 */printf("%d year %02d month %02d day",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);printf("%s %02d:%02d:%02d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);}---------------------------------------------------------“gcc testLocaltime.c”後運行結果為:2007 year 12 month 27 day Wednesday 23:30:21
gmtime的實現
testGmtime.c---------------------------------------------------------#include <stdio.h>#include <time.h>void cur_time(void);int main(int argc,char **argv){    cur_time();    return 0;}void cur_time(void){    char *wday[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};    time_t timep;    struct tm *p;    time(&timep);    p=gmtime(&timep); /* 獲取當前時間 */    printf("%d年%02d月%02d日",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);    printf("%s %02d:%02d:%02d\n",wday[p->tm_wday],(p->tm_hour+8),p->tm_min,p->tm_sec);}-----------------------------------------------------------“gcc testGmtime.c”後運行a.out結果為:2007年12月26日星期三 15:30:21 //注意GMT、UTC均為標準時間,我國位於東八區,因此在原有基礎上減去8

異同點

共同點

這兩個函式採用了time.h中的一個tm結構體定義:
struct tm{    int tm_sec; /* Seconds. [0-60] (1 leap second) */    int tm_min; /* Minutes. [0-59] */    int tm_hour; /* Hours. [0-23] */    int tm_mday; /* Day. [1-31] */    int tm_mon; /* Month. [0-11] */    int tm_year; /* Year - 1900. */    int tm_wday; /* Day of week. [0-6] */    int tm_yday; /* Days in year.[0-365] */    int tm_isdst; /* DST. [-1/0/1]*/#ifdef __USE_BSDlong int tm_gmtoff; /* Seconds east of UTC. */__const char *tm_zone; /* Timezone abbreviation. */#elselong int __tm_gmtoff; /* Seconds east of UTC. */__const char *__tm_zone; /* Timezone abbreviation. */#endif};這兩個函式的原型為:
struct tm *localtime(const time_t *timep);
struct tm *gmtime(const time_t *timep);

不同點

localtime函式獲得的tm結構體的時間,是已經進行過時區轉化為本地時間。
而此函式功能類似獲取當前系統時間,只是獲取的時間未經過時區轉換。

相關詞條

熱門詞條

聯絡我們