我一直在尝试修复 Ubuntu 16.04 主机上的时间,但无法更正时区。出于某种原因,Ubuntu 认为太平洋/奥克兰时区与 UTC 相同,并且没有 12 小时的偏移量。“太平洋/奥克兰”时区应该是 UTC +12
sudo dpkg-重新配置 tzdata
Current default time zone: 'Pacific/Auckland' Local time is now: Tue Sep 26 09:08:37 UTC 2017. Universal Time is now: Tue Sep 26 09:08:37 UTC 2017.
timedatectl 状态
Local time: Tue 2017-09-26 09:13:45 Pacific Universal time: Tue 2017-09-26 09:13:45 UTC RTC time: Tue 2017-09-26 09:13:45 Time zone: Pacific/Auckland (Pacific, +0000) Network time on: no NTP synchronized: no RTC in local TZ: yes
警告:系统配置为读取本地时区的 RTC 时间。
此模式无法完全支持。它会
在时区变化和夏令时调整方面产生各种问题。RTC
时间永远不会更新,它依赖于外部设施来维护它。
如果可能的话,通过调用
“timedatectl set-local-rtc 0”以 UTC 使用 RTC。
有人能告诉我如何解决这个问题吗?
刚刚做了
sudo ntpdate nz.pool.ntp.org
并得到
25 Sep 22:38:17 ntpdate[1422]: step time server 130.217.226.49 offset -43211.035177 sec
并执行
date
Mon Sep 25 22:49:05 Pacific 2017
但是当前时间是上午 11:49。
答案1
找到问题了。我的 /usr/share/zoneinfo/NZ 被一个 rouge unit test 破坏了。“NZ”文件原本是一个二进制文件,后来被一个文本文件替换,文件内容为“NZST-12NZDT,M9.5.0,M4.1.0/3”。
我从另一台机器复制了 NZ 文件,问题就解决了。
timedatectl 状态
现在说:
当地时间:星期六 2017-09-30 02:33:09 NZDT
世界时间:星期五 2017-09-29 13:33:09 UTC
RTC 时间:星期五 2017-09-29 13:33:12
时区:太平洋/奥克兰 (NZDT, +1300)
网络时间开启:是
NTP 同步:否
本地 TZ 中的 RTC:否