我们遇到了一些日期/时间转换问题,因此我正在调查任何可能的原因。
date
在此期间,我在 Ubuntu 14.04 中发出命令时偶然发现了这个奇怪的问题。
date
给出Thu Nov 26 11:05:50 GMT+1 2015
但date -u
给出了Thu Nov 26 12:05:53 UTC 2015
命令输入间隔大约3秒,但是GMT+1时间错误,应该是13:05
。
/etc/timezone 设置为“Etc/UTC”。
输出自timedatectl
Local time: Thu 2015-11-26 13:09:49 GMT+1 Universal time: Thu 2015-11-26 14:09:49 UTC Timezone: Etc/UTC (GMT+1, -0100) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
显然这就是原因,但是 GMT+1 怎么会是 -0100 呢。 (正如 dadexix86 的答案所解释的那样,这是使用 Etc/UTC 时的正确行为。)
这可能是 /etc/localtime 文件出了问题。执行完
sudo timedatectl set-timezone Europe/Copenhagen
date
并且date -u
现已同步。
(问题是“Etc/UTC”在 +/- 处转向。设置时区不仅解决了date
问题。我们的转换问题也消失了。)
答案1
问题是等/UTC,将 GMT-1 定义为比格林威治时间早一小时(即在东部),将 GMT+1 定义为比格林威治时间晚一小时(即在西部),与 UTC 的做法正好相反。
我推荐你参阅 Stack Overflow 上的此讨论以获得更详细的解释。
因此,我建议您将时区更改为 UTC+1,或者更好的是,更改为 CET 之类的时区,这样您就不会遇到夏令时的问题。
这是我的timedatectl
timedatectl
Local time: gio 2015-11-26 15:14:20 CET
Universal time: gio 2015-11-26 14:14:20 UTC
RTC time: gio 2015-11-26 15:14:37
Time zone: Europe/Berlin (CET, +0100)
Network time on: yes
NTP synchronized: no
RTC in local TZ: yes