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(&lt);
printf(asctime(ptr));
printf(ctime(
&lt));
return 0;
}

延时执行:

unsigned int sleep(unsigned int seconds)
睡眠seconds秒
void usleep(unsigned long usec)
睡眠usec微秒

posted @ 2011-04-14 12:14  Moupeng.Yang  阅读(283)  评论(0编辑  收藏  举报