日期命令的时区问题

日期命令的时区问题

我们遇到了一些日期/时间转换问题,因此我正在调查任何可能的原因。

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

相关内容