Linux 时间和时区设置问题

原则上内核时钟和硬件时钟都应该存储 UTC 时间,有时间硬件时钟可能不住着本地时间,Windows 会这么干。这时就会出现时间设置不正确的 问题。

通常我们使用下面的命令从硬件读取时间和向硬件写入时间:

sudo hwclock --systz        # 读取硬件时钟
sudo hwclock --systohc  # 写入硬件时钟

问题在于 hwclock 读取和写入硬件时钟时怎么知道硬件时钟存储或应该存储什么类型的时间呢?UTC还是本地时间?这是需要用到 /etc/adjtime 文件,这个文件中描述了硬件时钟是存储或应该存储什么类型的时间。文件格式为

0.150763 1298445152 0.000000
1298445152
UTC

关键在第三行,UTC 表示存储着 UTC 时间,LOCAL 表示本地时间。

需要使 /etc/adjtime 文件中的时间类型和硬件时钟中存储时间类型一致,否则就会导致时间不对。

Over!

8 thoughts on “Linux 时间和时区设置问题”

Leave a Reply

Your email address will not be published. Required fields are marked *