[C/C++] Linux下c语言编程的时间函数详解默认分类 2010-03-12 10:41:35 阅读448 评论0 字号:大中小订阅 .
/******************
* Linux时间函数 *
******************/
asctime(将时间和日期以字符串格式表示); ===>传入UTC(struct tm)tmp,返回char*。
ctime(将时间和日期以字符串格式表示); ===>传入(time_t)arg,返回char*。
gettimeofday(取得目前的时间); ===>传入(time_t)arg,返回tv,tz结构体传入时间,时区信息。
gmtime(取得目前时间和日期); ===>传入(time_t)arg,返回UTC(struct tm)tmp。
localtime(取得当地目前时间和日期); ===>传入time_t,返回当地(struct tm)tmp。
mktime(将时间结构数据转换成经过的秒数); ===>把(struct tm)tmp转换为UTC(time_t)arg。
settimeofday(设置目前时间); ===>通过tv,tz结构体传入时间,时区信息。
time(取得目前的时间); ===>非空参数(或返回值)接收(time_t)arg。
×××注1:char*是字符串时间格式。如:Sat Oct 28 02:10:06 2000。
×××注2:time_t是time()的返回值类型,(time_t)arg指从1970年到所指时间的秒数。
×××注3:struct tm为真实世界的表示时间方式,(struct tm)tmp是指向tm的时间。
×××注4:UTC,指标准时间。简单的想,就是0时区的时间标准。
以下是各个函数的详解:
_______________________________________________________________________________
asctime(将时间和日期以字符串格式表示)
相关函数 time,ctime,gmtime,localtime
表头文件 #include<time.h>
定义函数 char *asctime(const struct tm * timeptr);
函数说明 asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为:“Wed Jun 30 21:49:08 1993\n”
返回值 若再调用相关的时间日期函数,此字符串可能会被破坏。此函数与ctime不同处在于传入的参数是不同的结构。
附加说明 返回一字符串表示目前当地的时间日期。
范例
#include <time.h>
int main()
{
time_t timep;
time (&timep);
printf(“%s”,asctime(gmtime(&timep)));
return 0;
}
执行
Sat Oct 28 02:10:06 2000
#