linux时间编程
时间类型:
- Coordinated Universal Time(UTC):
世界标准时间,也就是大家所熟悉的格林威治标准时间(Greenwich Mean Time, GMT)
- Calender Time:
日历时间,是用一个标准时间点到此时经过的秒数来表示时间。
时间获取:
time_t time(time_t *tloc)
获取日历时间,即从1970年1月1日0点到现在所经历的秒数
struct tm *gmtime(const time_t *timep)
将日历时间转化为格林威治时间,并保存在TM 结构
struct tm *localtime(const time_t *timep)
将日历时间转化为本地时间,并保存至TM结构int gettimeofday(struct timeval *tv, struct timezone *tz)获取从今天0点到现在的时间差,常用于计算事件的耗时struct timeval{int tv_sec; //秒数int tv_usec; //微秒数}
例子:
#include <stdio.h>
#include <time.h>
int main(void)
{
struct tm *local;
time_t t;
t = time(NULL);
local = localtime(&t);
printf("Local hour is: %d\n",local->tm_hour);
local = gmtime(&t);
printf("UTC hour is: %d\n", local->tm_hour);
return 0;
}
时间显示:
char *asctime(const struct tm *tm)
将tm格式的时间转化为字符串
char *ctime(const time_t *timep)
将日历时间转化为本地时间的字符串格式
例子:
#include <stdio.h>
#include <time.h>
int main(void)
{
struct tm *ptr;
time_t lt;
lt = time(NULL);
ptr = gmtime(<);
printf(asctime(ptr));
printf(ctime(<));
return 0;
}
延时执行:
unsigned int sleep(unsigned int seconds)睡眠seconds秒
void usleep(unsigned long usec)睡眠usec微秒