为何计算机里面只有上海重庆时间没有北京时间?

为何计算机里面只有上海重庆时间没有北京时间?

重庆是因为陇蜀时区的原因。中国幅员辽阔,曾划分为5个时区,每个时区/国家组合一般在计算机里都有一个代表城市。

当年的陇蜀时区里影响力最大的城市就是重庆了吧。同样中原时区的代表就是上海了。而且陇蜀时区影响力本来就不亚于中原标准时,在抗战时还一度成为全国统一时区。而db/timezone里的时区要考虑历史时区(比如编译时区时加入了backzone信息)。如果你的时区信息里包含backzone(1970年以前),那么你选重庆时间和上海时间,表面看好像没区别。 2018/01/01 00:00(重庆)和2018/01/01 00:00(上海)转成epoch是一样的,但是你要换成1945/01/01 00:00(重庆)和1945/01/01 00:00(上海)转成epoch就是不一样的了。所以重庆和上海从历史时区的角度看其实是不一样的两个时区。===============================具体的db/timezone资料可以看:List of tz database time zones(注,表格里只标明1970年以后的信息)。历史时区看http://www.iana.org/time-zones/repository/releases/tzdata2017c.tar.gz的backzone文件。这里考虑的是历史时区,即:

在同一个历史时区内,可以自由地前后调整时间而不用担心时间调整到某个时间点之后时区分裂成多个。