Date
奇怪的時區縮寫
如果我在我的 Centos 6 伺服器中從控制台執行此操作
# date
我收到這個
Wed Oct 11 05:11:00 -03 2017
任何人都可以向我解釋為什麼日期返回 -03(UTC 偏移量)
而不是這個
Tue Oct 10 12:30:50 AMST 2017
如何返回AMST值而不是數值**-03**?
注意:另外,如果我執行這個
# zdump /etc/localtime /etc/localtime Wed Oct 11 05:27:33 2017 -03 zdump: warning: zone "/etc/localtime" abbreviation "-03" lacks alphabetic at start
注意2:許多工具都沒有預料到使用UTC偏移量,所以我會避免它,是否可能。
謝謝
看起來 tzdata 最近停止使用“發明的縮寫”,例如Red Hat 對此的報告:
從 tzdata-2016b 開始,為新時區實施了一種提供 tzdata 時區縮寫的新方法。創建新區域時,tzdata 現在將使用數字時區縮寫,如“+03”,而不是早期發明新縮寫的命名約定,如“ASTT”。
此外,從 tzdata-2017a 開始,有一項刪除區域縮寫的政策,這些縮寫沒有官方地位並且是為了方便而發明的。
由於此更改,某些 tzdata-2016b 數據條目可能會導致從 tzdata-2005j 到 tzdata-2015e 的版本派生的 zic 實現發出警告。zdump 命令也可能針對這些新時區發出警告。
這似乎與您所看到的行為完全匹配。我在 Debian 系統上看到了同樣的情況:
$ zdump America/Sao_Paulo UTC America/Sao_Paulo Wed Oct 11 11:19:19 2017 -03 zdump: warning: zone "America/Sao_Paulo" abbreviation "-03" lacks alphabetic at start UTC Wed Oct 11 14:19:19 2017 UTC
使用過時版本的 tzdata 執行的不同系統顯示“BRT”時區:
$ zdump America/Sao_Paulo UTC America/Sao_Paulo Wed Oct 11 11:19:40 2017 BRT UTC Wed Oct 11 14:19:40 2017 UTC
在這兩種情況下,實際的當地時間似乎都是正確的。這個問題在 CentOS中也得到了承認。
看起來您最好的選擇是不要擔心意外的區域縮寫,或者,如果您真的關心這一點並且不關心其他時區更新,您可以將您的 tzdata 包回滾到 2017a 之前的版本。