C语言时间函数

1time函数

头文件:time.h

函数定义:time_t time (time_t *t)

说明:返回从197011日的UTC时间从000妙算起到现在所经过的秒数。

#include<stdio.h>

#include<time.h>

int main(){

time_t timep;

long seconds = time(&timep);

printf("%ld\n",seconds);

printf("%ld\n",timep);

return 0;

}

输出:

1302079744

1302079744

附:time_t 一路追踪发现就是从long类型经过不断的typedef ,#define定义过来的。

2ctime函数

定义:char *ctime(const time_t *timep);

说明:将参数所指的time_t结构中的信息转换成真实世界的时间日期表示方法,然后将结果以字符串形式返回。这个是本地时间。

#include <stdio.h>

#include<time.h>

int main(void) {

time_t timep;

time(&timep);

printf("%s\n",ctime(&timep));

return 0;

}

输出:Wed Apr 6 16:53:35 2011

3gettime函数

定义:struct tm *gmtime(const time_t *timep);

说明:将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。此函数返回的时间日期未经时区转换,而是UTC时间。struct tm结构的定:

struct tm{

int tm_sec;/*秒数*/

int tm_min; /*分钟*/

int tm_hour;/*小时*/

int tm_mday;/*日期*/

int tm_mon; /*月份*/

int tm_year; /*1990年算起至今的年数*/

int tm_wday; /*星期*/

int tm_yday; /*从今年11日算起至今的天数*/

int tm_isdst; /*日光节约时间的旗标*/

};

 

#include <stdio.h>

#include<time.h>

 

int main(void) {

char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

time_t timep;

struct tm *p;

time(&timep);

p = gmtime(&timep);

printf("%d/%d/%d ",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);

printf("%s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);

return 0;

}

输出:2011/4/6 Wed 8:59:0

 

4asctime函数

定义:char *asctime(const struct tm *timeptr);

说明:将参数timeptr所指的struct tm结构中的信息转换成真实时间所使用的时间日期表示方法,结果以字符串形态返回。与ctime()函数不同之处在于传入的参数是不同的结构。注意返回的也是UTC时间。

#include <stdio.h>

#include <stdlib.h>

#include<time.h>

int main(void) {

time_t timep;

time(&timep);

printf("%s\n",asctime(gmtime(&timep)));

return EXIT_SUCCESS;

}

输出:Wed Apr 6 09:00:39 2011

 

5localhost函数

struct tm *localhost(const time_t *timep);取得当地目前的时间和日期

#include <stdio.h>

#include <stdlib.h>

#include<time.h>

 

int main(void) {

char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

time_t timep;

struct tm *p;

time(&timep);

p = localtime(&timep);

printf("%d/%d/%d ",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);

printf("%s %d:%d:%d\n",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);

return EXIT_SUCCESS;

}

 

输出:2011/4/6 Wed 17:3:0

 

6mktime函数

定义:time_t mktime(struct tm *timeptr);

说明:用来将参数timeptr所指的tm结构数据转换成从197011日的UTC时间从000妙算起到现在所经过的秒数。

#include <stdio.h>

#include <stdlib.h>

#include<time.h>

 

int main(void) {

time_t timep;

struct tm *p;

time(&timep);

printf("time():%ld\n",timep);

p = localtime(&timep);

timep = mktime(p);

printf("time()->localtime()->mktime():%ld\n",timep);

return EXIT_SUCCESS;

}

输出:time():1302080789

time()->localtime()->mktime():1302080789

 

7gettimeofday函数

定义:int gettimeofday(struct timeval *tv,struct timezone *tz);

说明:把目前的时间由tv所指的结构返回,当地时区信息则放到有tz所指的结构中,

struct timeval{

long tv_sec; /**/

long tv_usec; /*微秒*/

};

struct timezone{

int tz_minuteswest; /*greenwich时间差了多少分钟*/

int tz_dsttime; /*日光节约时间的状态*/

}

 

#include <stdio.h>

#include <stdlib.h>

#include<time.h>

#include<sys/time.h>

 

int main(void) {

struct timeval tv;

struct timezone tz;

gettimeofday(&tv,&tz);

printf("tv_sec :%d\n",tv.tv_sec);

printf("tv_usec: %d\n",tv.tv_usec);

printf("tz_minuteswest:%d\n",tz.tz_minuteswest);

printf("tz_dsttime:%d\n",tz.tz_dsttime);

return EXIT_SUCCESS;

}

输出:tv_sec :1302081017

tv_usec: 532325

tz_minuteswest:-480

tz_dsttime:0

posted on 2011-04-06 17:27  chenqiangjsj  阅读(18356)  评论(0编辑  收藏  举报

导航