为什么“hwclock -u”不显示 UTC 时间?

为什么“hwclock -u”不显示 UTC 时间?
               Local time: Sat 2022-01-29 23:18:39 CET
           Universal time: Sat 2022-01-29 22:18:39 UTC
                 RTC time: Sat 2022-01-29 22:18:39
                Time zone: Europe/Paris (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

[root@rhcsa1 ~]# hwclock --get -u
2022-01-29 23:18:53.243325+01:00

答案1

硬件时钟不知道它的时区,它只是一个时钟。因此,如果未设置为 UTC,而是设置为其他特定时区,则您必须自己提供时区。

-u,选项--utc不告诉hwclock显示 UTC 时间。它只是一个选项,用于指定是的,时钟将被视为 UTC,而不是-l, --localtime

它告诉hwclock硬件时钟中存储的时间是UTC,因此可以计算并显示正确的本地时间。

如果你想hwclock显示UTC时间你可以实现它:

# TZ=UTC date
Sat Jan 29 22:52:47 UTC 2022
# TZ=UTC hwclock --get --utc
2022-01-29 23:52:50.968087+00:00

在我的例子中,硬件时钟设置为本地时间而不是 UTC,因此将其读取为 UTC 时输出不匹配。在你的情况下它应该匹配。就我而言,它也不会与设置为错误的时区的--localtime情况匹配。TZ

因此,如果硬件时钟未设置为 UTC,则无法打印hwclockUTC 时间。


手册页也对此进行了解释:

-r,--显示; --get
读取硬件时钟并将其时间以 ISO 8601 格式打印到标准输出。即使您将硬件时钟设置为 UTC,显示的时间也始终为当地时间。

相关内容