Linux C常用时间函数
1
time_t time(time_t *t);
返回从1970.1.1 0:0:0的UTC时间格林威治时间的时间差秒数。
#include<stdio.h>
#include<time.h>
Int main(){
Time_t s;
S=time((time_t*)NULL);//NULL表示当前时间
Printf(“now :%ld”,s);
}
Int main(){
Time_t *s;
time(s);
Printf(“now :%ld”,*s);
}
2
Struct tm *gmtime(time_t *timep)
将秒数转换为当前可以理解的时间
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 main(){
Time_t s;
Struct tm *p;
time(*s);
p=gmtime(*s);
Printf(“year :%d”,1900+p->tm_year);
Printf(“Month :%d”,1+p->tm_mon);
Printf(“day :%d”,1+p->tm_mday);
….
}
3
char *ctime(time_t *timep)
返回一个时间字符串
4
char *asctime(struct tm *timeptr)
将tm格式的时间转为字符串
5
Struct tm *locatime(time_t *timep)
功能与gmtime类似,但返回当地当前时间
6
time_t mktime(tm *timeptr)
将tm结构数据转换为秒数
7
int gettimeofday(struct timeval *tv,struct timezone *tz)
struct timeval{
long tv_sec;//当前时间的秒数
long tv_usec;//当前时间的微秒数
}
Struct timezone{
Int tz_minuteswest;//UTC时间相差的分钟
Int tz_dsttime;//夏令时间相差的分钟
}
此函数只能处理秒级的时间,需要跟上面的时间函数配合使用。