时间时区概念及常用时间函数

本文介绍了时间时区的概念,包括24个时区的划分和硬件时钟(RTC)的工作原理。同时,详细讲解了Linux系统中的时间结构体、UTC时间以及本地时间之间的关系。还列举了Linux中常用的时间函数,如time、gmtime、localtime、mktime和gettimeofday,以及它们在处理时间转换和获取时区信息时的作用。
摘要由CSDN通过智能技术生成

时区,为了克服时间上的混乱,1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议 )上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1-12区,西1-12区,每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5度,以东、西经180度为界。每个时区的中央经线上的时间就是这个时区内统一采用的时间,称为区时,相邻两个时区的时间相差1小时。


硬件时钟(又称实时时钟,也就是RTC),实时时钟为操作系统提供了一个可靠的时间,并且在断电的情况下,RTC实时时钟也可以通过电池供电,一直运行下去,用来保存和同步计算机操作系统时间。RTC通过STRB/LDRB这两个ARM指令向CPU传送8位数据(BCD码)。数据包括秒,分,小时,星期,天,月和年。RTC实时时钟依靠一个外部的石英晶体,产生周期性的脉冲信号,每一个信号到来时,计数器就加1,通过这种方式,完成计时功能。


系统时钟,操作系统认知的时间,包括时区信息和UTC时间(unix时戳均使用1970年1月1日0时0分0秒到目前的UTC秒数)两部分,时区信息保存在/etc/localtime文件中,一般由/usr/share/zoneinfo/目录下的时区文件拷贝或链接而来(该目录包含所有支持的时区文件,修改时区其实是替换/etc/localtime文件,而不是直接修改该文件内容)。UTC时间是UNIX系统所使用的标准时间,不同地区的人使用时显示的本地时间由UTC+时区而来(也可以说所有Unix/linux操作系统的系统时间都相同,1970年1月1日0时0分0秒到目前的UTC秒数)。


了解以上概念我们知道,计算机系统一般包括三个重要的时间(也是容易搞混的时间,通常我们所说的计算机时间应该指的是本地时间,用户在第一次使用设备时需要选择时所在区),分别为硬件rtc时间,系统utc时间和本地local时间。三者有以下关系:

硬件rtc时间是在关机或掉电状态能够继续保存的,所以为主

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值