gmtime是把日期和时间转换为格林威治(GMT)时间的函数。将参数time 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
gmtime是把日期和时间转换为格林威治(GMT)时间的函数。将参数time 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
头文件:time.h
调用原型:struct tm *gmtime(const time_t *timeptr)
函数功能:返回tm结构的格林尼治时间(GMT)
tm结构定义:
struct tm{ int tm_sec; //取值,非正常情况下可到达61 int tm_min; //取值同上 int tm_hour; //取值 int tm_mday; //取值 int tm_mon; //取值 int tm_year; //1900年起距今的年数 int tm_wday; //取值 int tm_yday; //取值 int tm_isdst; //夏令时标志 };返回值:如上所述
#include "stdio.h"#include "time.h"#include "stdlib.h"int main(void){ time_t t; struct tm *gmt, *area; 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:%02dn",wday,p->tm_hour,p->tm_min,p->tm_sec);}---------------------------------------------------------“gcc testLocaltime.c”后运行结果为:2007 year 12 month 27 day Wednesday 23:30:21gmtime的实现
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:%02dn",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; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; #ifdef __USE_BSDlong int tm_gmtoff; __const char *tm_zone; #elselong int __tm_gmtoff; __const char *__tm_zone; #endif};这两个函数的原型为:struct tm *localtime(const time_t *timep);
struct tm *gmtime(const time_t *timep);
localtime函数获得的tm结构体的时间,是已经进行过时区转化为本地时间。
而此函数功能类似获取当前系统时间,只是获取的时间未经过时区转换。