在Linux计算机上,有两个时间,一个是硬件时间(BIOS中记录的时间),另一个是操作系统时间。硬件时钟由BIOS电池供电,

计算机关机后,会继续运行。

时间是有时区的,无论硬件时间还是操作系统时间,都有时区,默认情况下,Ubuntu的硬件时间使用UTC时间,配置文件为

/etc/default/rcS,建议使用UTC时间;而操作系统时间的时区对应的配置文件为/etc/timezone,如果你想修改,那最好使用

sudo dpkg-reconfigure tzdata来修改时区,不建议直接修改/etc/timezone文件,如果你想修改为UTC时间,那执行

sudo dpkg-reconfigure tzdata命令时,选择None of the above->UTC 即可

下面说一下硬件时间与操作系统时间的协作流程

1、开机时,操作系统从BIOS中读取硬件时间+时区,根据自己的时区,转换为对应的时间,然后操作系统时间与硬件时间就独

立运行,相互不影响,我们通过应用程序获取的时间用的都是操作系统时间

2、正常关机时,操作系统时间刷入BIOS,更新硬件时间;非正常关机时,操作系统时间很可能不能正确写入BIOS

解决非正常关机时,操作系统时间不能正常写入BIOS的问题的方法是:定时将操作系统时间刷入BIOS,比如一个小时刷入一次,

这样即使非正常关机,那两者的时间差也很小很小。

原文:http://www.cnblogs.com/ajianbeyourself/p/4189520.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐