为什么时区显示为数字?

为什么时区显示为数字?

这是 OpenSuse Leap 42.1,我不知道为什么或如何发生这种情况:

$ date
Tue 18 Apr 10:49:34 -03 2017

时区显示为 -03(或 -02),而不是有意义的名称(在我的例子中,BRT/BRST)。试图搜索,但这似乎很模糊,结果总是采用以下形式“如何更改时区”

编辑:回复评论:

$ date +%Z
-03
$ timedatectl
      Local time: Tue 2017-04-18 11:38:26 -03
  Universal time: Tue 2017-04-18 14:38:26 UTC
        RTC time: Tue 2017-04-18 14:38:26
        Timezone: America/Sao_Paulo (-03, -0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no

答案1

这就是 IANA 官方标准时区数据库现在的定义方式

ftp://ftp.iana.org/tz/tzdb-2017b/southamerica

冬季时间的时区名称是-03。这对应于 UTC 偏移量。它比CET那些模棱两可的东西(对不同的人意味着不同的东西)更有用。

最近情况显然发生了变化。比较ftp://ftp.iana.org/tz/tzdb-2017a/southamerica(2017-02-28) 与ftp://ftp.iana.org/tz/tzdb-2016j/southamerica(2016-11-23) 原来如此BRT

NEWS2017a 版本的文件状态:

[...]
南美洲改用数字时区缩写,作为正在进行的删除发明缩写项目的一部分。这避免了为新的智利新区发明缩写的需要。同样,将阿富汗、美属萨摩亚、亚速尔群岛、孟加拉国、不丹、英属印度洋领地、文莱、佛得角、查塔姆群岛、圣诞节 I、科科斯(基林)群岛、库克群岛、迪拜的发明时区缩写切换为数字时区缩写、东帝汶、尤克拉、斐济、法属波利尼西亚、格陵兰岛、印度支那、伊朗、伊拉克、基里巴斯、豪勋爵岛、麦格理、马来西亚、马尔代夫、马绍尔群岛、毛里求斯、密克罗尼西亚、蒙古、缅甸、瑙鲁、尼泊尔、新喀里多尼亚、纽埃、诺福克岛、帕劳、巴布亚新几内亚、菲律宾、皮特凯恩、卡塔尔、留尼旺、圣皮埃尔和密克隆群岛、萨摩亚、沙特阿拉伯、塞舌尔、新加坡、所罗门群岛、托克劳、图瓦卢、威克、瓦努阿图、瓦利斯和富图纳群岛以及新疆; 1943年之前加纳实行20分钟夏令时;伯利兹在 1944 年之前实行半小时夏令时,多米尼加共和国在 1975 年之前实行半小时夏令时; 1946 年之前的加那利群岛、1975 年之前的几内亚比绍、1969 年之前的冰岛、1942 年之前的印度夏令时、1964 年左右之前的印度尼西亚、1960 年之前的肯尼亚、1973 年之前的利比里亚、1967 年之前的马德拉、1967 年之前的纳米比亚1943 年为荷兰,1937-9 年为荷兰,1971 年之前为巴基斯坦,1977 年之前为西撒哈拉,1880-1924 年为扎波罗热。
[...]

通常,您可以在变量中手动指定冬季和夏季时间的名称以及何时从一个时间更改为另一个时间的规则TZ,但对于巴西来说,这实际上是不可能的,因为根据该时区数据库:

http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm 巴西现在的夏令时时间为 10 月 3 日星期日至 2 月 3 日星期日。返回日期有一个例外,如果这是狂欢节周日,则返回日期将为下周日...

没有办法在简单的TZ规则规范中指定这种异常。

答案2

/etc/sysconfig/clock使用以下选项编辑文件并重新启动它

HWCLOCK="-u"
SYSTOHC="yes"
TIMEZONE="Europe/London"
DEFAULT_TIMEZONE="US/Central"

注意:根据您的时区提及时区

相关内容