为什么 hwclock 既不是 UTC 也不是当地时间?

为什么 hwclock 既不是 UTC 也不是当地时间?
$ timedatectl 
      Local time: Fri 2015-01-30 11:04:51 CET       correct UTC+1
  Universal time: Fri 2015-01-30 10:04:51 UTC       correct UTC
        Timezone: Europe/Budapest (CET, +0100)      correct
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no                                ? UTC then ?
      DST active: no
 Last DST change: DST ended at
                  Sun 2014-10-26 02:59:59 CEST
                  Sun 2014-10-26 02:00:00 CET
 Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2015-03-29 01:59:59 CET
                  Sun 2015-03-29 03:00:00 CEST
$ sudo hwclock
Fri Jan 30 12:05:09 2015  -0.406771 seconds         ??????? UTC+2 ??????
$ date
Fri Jan 30 11:08:30 CET 2015                        correct

文档hwclock说明它始终显示本地时间,无论 RTC 是根据本地时间还是世界时间设置的。

什么原因导致 hwclock 显示 UTC+2 作为当地时间?

我原本以为 hwclock “认为” RTC 是按照 UTC 设置的,因此显示 +1,因为我在中欧,但 RTC 实际上是本地时间(已经 +1),因此显示 +1+1=+2。但timedatectl上面“说” RTC 不是本地的。那么到底是怎么回事?

更新:

$ sudo hwclock --debug
hwclock from util-linux 2.20.1
Using /dev interface to clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2015/01/30 11:38:38
Hw clock time : 2015/01/30 11:38:38 = 1422617918 seconds since 1969
Fri Jan 30 12:38:38 2015  -0.516275 seconds

因此它“认为” RTC 是 UTC,但实际上是本地时间。那么timedatectl罪魁祸首是谁?

答案1

  1. 转到您的 BIOS 并将 BIOS 时钟设置为 UTC 并在那里正确设置时间!
  2. 在 Windows 中,设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal"dword:00000001
  3. 仍在 Windows 中,转到控制面板,添加/删除软件,更改 Windows 设置,添加 Windows 时间服务器。
  4. 在 Ubuntu 中,如果值为,sudo nano /etc/default/rcS Ctrl则更改为W UTC=noyes
  5. 仍在 Ubuntu按照官方说明进行操作安装ntp
  6. sudo reboot

问题解决了!

为什么选择 Windows? 好吧,如果你的设置关闭了,我推断你一定是双重启动,而且 Windows 把事情搞乱了! 吃! ;-)

相关内容