词条 | gmtime |
释义 | gmtime()简介包含头文件:time.h 原型:struct tm *gmtime(long *clock); 功能:把日期和时间转换为格林威治(GMT)时间的函数。将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。 结构tm的定义为 struct tm { 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; }; int tm_sec 代表目前秒数,正常范围为0-59,但允许至61秒 int tm_min 代表目前分数,范围0-59 int tm_hour 从午夜算起的时数,范围为0-23 int tm_mday 目前月份的日数,范围01-31 int tm_mon 代表目前月份,从一月算起,范围从0-11 int tm_year 从1900 年算起至今的年数 int tm_wday 一星期的日数,从星期一算起,范围为0-6 int tm_yday 从今年1月1日算起至今的天数,范围为0-365 int tm_isdst 日光节约时间的旗标 此函数返回的时间日期未经时区转换,而是UTC时间。 返回值 返回结构tm代表目前UTC 时间 gmtime()的应用举例#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与gmtime共同点这两个函数采用了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_BSD long int tm_gmtoff; /* Seconds east of UTC. */ __const char *tm_zone; /* Timezone abbreviation. */ #else long 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结构体的时间,是已经进行过时区转化为本地时间。 而此函数功能类似获取当前系统时间,只是获取的时间未经过时区转换。 获取当前系统时间localtime的实现localtime.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[]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; time_t timep; struct tm *p; time(&timep); p=localtime(&timep); /* 获取当前时间 */ printf("%d年%02d月%02d日",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday); printf("%s %02d:%02d:%02d\",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec); } --------------------------------------------------------- gcc localtime.c 后运行a.out结果为: 2007年12月26日星期三 11:07:15 gmtime的实现gmtime.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[]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; 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\",wday[p->tm_wday],(p->tm_hour+8),p->tm_min,p->tm_sec); } ----------------------------------------------------------- gcc gmtime.c 后运行a.out结果为: 2007年12月26日星期三 11:08:34 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。