奇怪的时区缩写

奇怪的时区缩写

如果我从 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偏移量对于许多工具来说是意想不到的,所以我会避免它,这可能吗?

谢谢

答案1

看起来 tzdata 最近已经停止使用“发明的缩写”,例如红帽对此的报告

自 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 之前的版本。

相关内容