Linux之时间
一、Linux 中时间的几个基本概念
1、什么是 UTC 时间?
世界统一时间,世界各地的时间以这个为基准 。
2、什么是 UNIX 纪元时间?
Unix time 是指从 1970 年 1 月 1 日 00:00:00 UTC 开始所经过的秒数。
在 linux 中时间日期会以这种方式存储时间,有效位是秒。例如经过了 1 分钟,这个数值会变大 60 秒。
3、什么是格林尼治标准时(GMT)时间?
GMT 是指太阳经过英国格林尼治的时间。在英国很 NX 的时候,以格林尼治为 0 度经线,
将世界分为 24 个时区。
北京时间指的是东八区的时间,和格林尼治时间相差 8 个小时。
4、什么是机器日历时间
对于 Linux 来说,机器日历时间是 UNIX 纪元时间。
二、Linux 中时间的调用
1、时间调用函数
本小节介绍常用的 Linux 时间函数 time在头文件“#include <time.h>”中。
函数原型为
time_t time(time_t *t)
//参数 1:time_t 类型,以秒为单位,如果有参数则数据传送到 time_t *t 中。
//返回值:如果参数为 NULL 会返回 time_t 类型;出现错误返回-1。
//其中的时间类型 time_t,它是一个 long 类型,及其机器日历时间,在头文件 time.h 中定义。
2、函数测试代码
编写简单的 gettime.c 文件测试 time 函数。具体代码如下:
/*函数time头文件*/
#include<time.h>
#include<stdio.h>
int main(void)
{
time_t timep;
time(&timep);
printf("UTC time: 0x%08x\n", timep);
timep = time(NULL);
printf("UTC time: 0x%08x\n", timep);
return 0;
}
使用了两种方式返回时间,一种写入参数,一种写入 NULL。
3、测试结果
如图所示,运行两次程序,两次运行有几秒间隔,那么得到的时间就会不同。
三、Linux 中时间的转换
如上面的实验所示,类似的 0x 进制数对于人类来说太不容易知道具体含义了,