首先说明时间类型分为两种:
- Coordinated Universal Time(UTC):世界标准时间,也就是格林威治时间(Greenwich Mean Time, GMT)
- Calendar Time:日历时间,从一个标准时间点(如:1970年1月1日0点)到此时经过的秒数来表示的时间。
时间获取
#include <time.h>
time_t time<time_t *tloc>
//功能:获取日历时间,从1970年1月1日0点到现在所经历的秒数
//typedef long time_t
时间转换
struct tm *gmtime(const time_t *timep)
//功能:将日历时间转化为格林威治时间,并保存至TM结构。
struct tm *localtime(const time_t *timep)
//功能将日历时间转化为本地时间,并保存至TM结构
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_lsdst; //日光节约时间
}
时间显示
char *asctime(const struct tm *tm)
//功能:将TM格式的时间转换为字符串。如
//Sat Jul 30 08:43:03 2010
char *ctime(const time_t *timep)
//功能:将日历时间转化为本地时间的字符串形式
获取时间
int gettimeofday(struct timeval *tv, struct timezone *tz)
//功能:获取从今日凌晨到现在的时间差,常用于计算事件耗时。
struct timeval
{
int tv_sec; //秒数
int tv_usec; //微秒数
}
延时时间
unsigned int sleep(unsigned int seconds)
//功能:使程序睡眠seconds秒
void usleep(unsigned long usec)
//功能:使程序睡眠usec微秒
下面的代码给出一个简单的时间编程,显示出系统当前时间。
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t seconds;
char *timestr;
seconds = time(NULL); //获取日历时间
timestr = ctime(&seconds); //日历时间转换为字符串
printf("%s\n", timestr); //打印显示
return 0;
}
输出为:
Wed Dec 12 14:14:57 2012