首页 > 代码库 > 如何理解hwclock的输出与设置?

如何理解hwclock的输出与设置?

那么你会说,怎么检查我的硬件时间是不是utc时间呢??

hwclock --localtime

#如果上面这条命令的输出和UTC(GMT)时间同样的话,那就对啦,否则,还是看看下文吧。



有些操作系统会很傻逼的不分hwclock与localtime(是M$如果你没听出来我指的是谁的话),当然了,我们的先进多用户操作系统是不会这么干的,通常来说一台POSIX机器总是会把机器内部时钟调整到UTC(也就是格林威治(GMT)时间),然后再通过hwclock这个工具在启动时,由内核读取转换为sysclock,通常来说x86平台下,sysclock要比hwclock更精准。

屁话说了那么多,到底怎么将hwclock设置为UTC时间呢?

sudo cp /usr/share/zoneinfo/UTC /etc/localtime

#上面这命令,将UTC时间设为本地时间,以便设置hwclock


sudo date MMDDhhmm[YEAR][.SS]

#上面这命令中时间需要是GMT时间(或者称为UTC时间)


sudo hwclock --systohc --utc

#上面这命令,将sysclock同步到硬件时间(就是BIOS里面的时间),同时指定硬件时间为UTC时区


sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#上面这命令,将本地时间设为北京时间(没错,没有beijing这个zoneinfo),不信自己tzselect

date

#上面这命令,将检查本地时间


#值得玩味的是,man手册也里关于--localtime的说明,实际上仅仅是和--set --systohc --ajust开关同用时的。实事证明:

hwclock --localtime #显示的是硬件时间的本地时间
hwclock --utc       #显示的是当硬件时间为utc时,的真“本地时间”



参考资料:
http://www.linuxfromscratch.org/hints/downloads/files/time.txt


如何理解hwclock的输出与设置?