1、格林威治时间 英语:Greenwich MeanTime,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。 GMT 是“Greenwich Mean Time”的缩写,中文叫“格林威治标准时间”,是英国的标准时间,也是世界各地时间的参考标准。中英两国的标准时差为8个小时,即英国的当地时间比中国的北京时间晚8小时。
2、UTC(Coordinated Universal Time --协调世界时) 协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。
3、日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。日历时间(Calendar Time)是通过time_t数据类型来表示的,用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数。time_t实际上是长整型。
4、获取日历时间(从1970年1月1日0点到现在所经历的秒数)。
time_t time(time_t * tloc) typedef long time_t
5、将日历时间转化为格林威治时间,并保存至 tm 结构中 。
struct tm * gmtime(const time_t * timep)
6、将日历时间转化为本地时间,并保存至 tm 结构中 。
struct tm * locatime(const time_t * timep)
7、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_isdst; //
};
#include <time.h>
#include <stdio.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;
}
8、将tm 格式的时间转化为字符串
char * asctime(const struct tm * tm)
tm 是用 localtime() 转化来,则输出本地时间字符串
tm 是用 gmtime() 转化来,则输出格林威治时间字符串
9、 将日历时间转化为本地时间的字符串
char * ctime(const time_t * timep)
10、获取从今日凌晨到现在的时间差 int gettimeofday(struct timeval * tv ,struct timezone * tz )
// 常用于计算事件耗时
//struct timeval { int tv_sec;//秒数 int tv_usec;// 微妙}
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void function()
{
unsigned int i,j;
double y;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
y++;
}
main()
{
struct timeval tpstart,tpend;
float timeuse;
gettimeofday(&tpstart,NULL); // 开始时间
function();
gettimeofday(&tpend,NULL); // 结束时间
/* 计算执行时间 */
timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+
tpend.tv_usec-tpstart.tv_usec;
timeuse/=1000000;
printf("Used Time:%f/n",timeuse);
exit(0);
}
//这个程序用于计算function()的运行时间
11、使程序睡眠seconds秒 unsigned int sleep(unsigned int seconds)
12、使程序睡眠usec微秒 unsigned int sleep(unsigned long usec)