请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 13:33:47