初探Linux下的时间函数 以及 NTP得到的值

通用时间分为:GMT格林尼治时间,UTC统一协调时间,DST夏日节约时间,CST时间,以及本地时间Localtime。
UTC时间基本可以认为等同GMT时间(更加精准),都是本初子午线的时间。而Localtime是在UTC时间基础上加上时区与本初子午线的时间差得到的时间。
对于Linux,又分为系统时间和硬件时钟。更改了系统时间,还要通过命令写入硬件时钟。
Linux下的时钟相关函数如下:
这里写图片描述

其中,从内核获取的三个时间,都是UTC时间,其中timeval和time_t得到的时间都是相对于1970年1月1日00:00:00的秒数(timeval还有微妙)。
从UTC时间可以通过localtime()函数得到本地时间,该函数已经考虑了本地所在时区以及夏时令的因素。
localtime和gmtime都是将time_t结构分解为更为详细的struct tm结构。
对于从NTP得到的时间,也是一个time_t类型的值,但是表示的是相距1900年1月1日00:00:00的秒数(而不是1970年),所以如果要以NTP得到的时间来对本地时间直接进行配置,则需要先减去UNIX_OFFSET(1900~1970年之间的秒数),然后在通过settimeofday()函数写入系统时间,最后再通过hwclock –w写入硬件时钟(root权限才能执行成功)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值