如何检查硬件时钟是否处于UTC或本地时间

从我所了解的情况来看,hwclock -r命令无论如何设置,只会返回本地时间。我认为hwclock --utchwclock --localtime可以将时钟更改为UTC或本地时间。但是我不想更改它;我想知道它当前的设置。
那么,我该如何检查我的硬件时钟是否设置为UTC时间还是本地时间呢?

请检查您的BIOS设置。计算机的时间通常在这里设置。 - TheWanderer
哪个版本的Ubuntu?grep -i utc /etc/default/rcS命令输出了什么? - muru
@muru 那个命令返回了 UTC=no,所以我猜它是根据本地时间来改变的。我把它改成了 UTC=yes,现在时钟正常工作了。 - chaptuck
2个回答

Ubuntu 15.04及以后版本使用systemd作为默认的初始化系统,并包含timedatectl程序。运行timedatectl将输出:
      Local time: Tue 2016-02-02 09:47:54 MST
  Universal time: Tue 2016-02-02 16:47:54 UTC
        RTC time: Tue 2016-02-02 16:47:54
       Time zone: America/Denver (MST, -0700)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no

RTC时间是硬件时钟。通过比较它与timedatectl返回的本地时间和世界标准时间来确定硬件时钟的设置。

RTC在本地时区:否表示硬件时钟被解释为协调世界时(UTC)

RTC在本地时区:是表示硬件时钟被解释为本地时间

使用timedatectl进行切换

sudo timedatectl set-local-rtc 0将RTC设置为UTC

sudo timedatectl set-local-rtc 1将RTC设置为本地时间

使用配置文件进行切换

/etc/default/rcS中设置UTC=选项将改变系统对硬件时钟的解释(UTC=yesUTC=no)。


这个答案很简单,而且不需要使用sudo - Alex Jones

sudo hwclock --debug

返回解释(本地或UTC)答案之前,为您提供未修改的时间。

这正是我所期望的,谢谢。对于那个选项,手册上的描述并不详细,所以我不确定它的作用是什么。 - chaptuck
1timedatectl更好,你不需要使用sudo来执行它。 - Alex Jones
@FriarTuck 你认为什么是正确答案完全取决于你自己,不会有任何评判。 - Alex Jones
我当然不介意 =) - Anders Olsson
这个命令有什么帮助?我看不到任何一行说时钟是以协调世界时(UTC)为准的。 - Alex Jones
@edwardtorvalds 它输出的是硬件时钟的读取值,没有任何改变,我可以确定它不是本地时间。 - chaptuck
1如果您的系统没有timedatectl命令,这是您最好的选择(供在场的谷歌用户使用)。 - Mat M