‘timedatectl show’显示的RTCTimeUSec 是什么?

‘timedatectl show’显示的RTCTimeUSec 是什么?

在各种版本和版本的 Linux 上,发出以下命令时我会看到以下内容timedatectl show

Timezone=America/Los_Angeles
LocalRTC=yes
CanNTP=yes
NTP=yes
NTPSynchronized=yes
TimeUSec=Mon 2021-11-22 08:33:06 PST
RTCTimeUSec=Mon 2021-11-22 00:33:06 PS

这个值似乎是当地的时间偏移 -8 小时(我当前的 GMT 偏移量),这对我来说没有意义。

我在 Google 或 中找不到对此输出的任何引用。可能是(与 Windows 双启动)man timedatectl的产物?set-local-rtc=1

答案1

https://www.freedesktop.org/software/systemd/man/org.freedesktop.timedate1.html

Timezone 显示当前配置的时区。LocalRTC 显示 RTC 是否配置为使用 UTC(false)或本地时区(true)。CanNTP 显示是否有通过网络执行时间同步的服务,NTP 显示是否启用了此类服务。

NTPSynchronized 显示内核是否报告时间已同步(参见 adjtimex(3))。TimeUSec 和 RTCTimeUSec 显示系统和 RTC 中的当前时间。这三个属性的目的是允许远程客户端通过 D-Bus 访问这些信息。本地客户端可以直接访问这些信息。

如果您的 Windows 仍设置为本地时间,这肯定是导致两次时间不同的原因。

其中LocalRTC=noTimeUSecRTCTimeUSec值相同。

为了使双启动中两个系统的 RTC 时间保持为世界标准时间,最好强制 Windows 也使用 UTC。

您可以使用Windows 注册表中1的注册表值执行此操作。RealTimeIsUniversalHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

相关内容