为什么manjaro kde里面中国的时间用的是上海而不是北京啊

为什么manjaro kde里面中国的时间用的是上海而不是北京啊

香港时间是因为香港天文台有单独的授时服务吧,但是上海没有啊

是不是外国开发者不承认北京……还想着上海那些租界……

还是说“我一个上海市委书记……”

其他发行版一样的是上海,没有北京

1 Like

你这就有点过分了。。。尽量别扯到这方面去吧。
还是说你选的那个是地区。又或者这是kde的问题

所有 UNIX 的時區資料庫應該都是相同的,應該不會是只有 KDE 的問題
https://data.iana.org/time-zones/tz-link.html
嚴格說起來全中國的時區統一叫做 China Standard Time (CST), UTC +8,在 IANA 代號就是 Asia/Shanghai,沒有北京上海的差異。

绝大多数的 Linux 发行版使用了时区信息数据库tz database),这是一个被广泛应用的、开放的、维护着世界时区信息的数据库。

tz database 里的时区不仅是时间相同的地区,还要按照行政区划进行划分,另外需要记录历史上的变化,因此划分比一般的时区图详细的多:
tz database 中的中国大陆地区划分为五个区域,分别是:

  1. Asia/Chongqing

  2. Asia/Harbin

  3. Asia/Kashgar

  4. Asia/Shanghai

  5. Asia/Urumqi

这五个时区的时间均为中国标准时间(北京时间,UTC+8)。

这五个时区来自于曾经的中国时区,是在 1918 年由民国政府划分的:

  1. 中原(标准)时区:GMT+8
  2. 陇蜀时区:GMT+7
  3. 回藏时区(后改为「新藏时区」):GMT+6
  4. 昆仑时区:GMT+5:30
  5. 长白时区:GMT+8:30

GMT (格林尼治平时)和 UTC (协调世界时)是基本一致的。

1949 年后中华人民共和国将各地区统一为「北京时间」(GMT+8),台湾一度沿用中原标准时间。

Linux 发行版中的城市选择来自于 tz database 中独特的命名方法,一般包括区域、地点两级,区域一般是大洲大洋,地点则一般为本时区中最具代表性(通常也就是最大)的城市名,写作「[区域]/[地点]」,如: America/New_York 。

对于中国大陆的几个时区,也基本遵循了此规定,重庆、哈尔滨、喀什、上海、乌鲁木齐分别对应原陇蜀时区、长白时区、昆仑时区、中原时区、回藏时区。

民国政府主要以「中原标准时」、「陇蜀标准时」称各时区时间,而 tz database 记录 UNIX 纪元( 1970 年)后的时区变化,我尚未看到资料说明 tz database 中中国大陆各时区区域城市名是否沿用自之前已有的称呼,不过这种可能性比较大,而选择的几个城市名也几乎完全符合条件。

对选择这几个城市的最大疑问是「为什么没有『Asia/Beijing』」,毕竟中国标准时间是「北京时间」(实际上由位于陕西的国家授时中心授时)。然而按照 tz database 的规则,北京和上海处于同一时区,只能保留一个。而作为时区代表上海已经足够具有代表性,因此其维护者没有足够的动力做出改变。考虑到 tz database 的开发是在 30 年前,信息交流不畅,以重庆和上海为代表就更能理解了。

不仅各 Linux 发行版,各 BSD 系统以及众多程序语言的时间模块也使用了 tz database 。但 Mac OS X 中记录了众多地区的最近城市,因此选择有所不同。如果希望添加自己的时间,可以在

/usr/share/zoneinfo/Asia/

目录下复制上海等地点,重新命名。

2 Likes

据我了解,大部分类Unix包括Linux系统的时区资料库都是相同的,中国的时区在类Unix系统上中国的时区统一为China Standard Time(简写为CST),采用的是UTC+8,这个没啥差异

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.