我住在维也纳。我刚刚重置的 Android 设备刚刚询问我时区,我有多个可用选项:
Amsterdam GMT+01:00
Belgrade GMT+01:00
Brussels GMT+01:00
Sarajevo GMT+01:00
显然,Windows 还提供不同的 GMT+01:00 时区,所以这不是 Android 独有的:
Central Europe Standard Time (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
Central European Standard Time (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb
Romance Standard Time (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
W. Europe Standard Time (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
有什么区别?具体来说,“罗曼标准时间”和“西欧标准时间”有什么区别?根据维基百科,它们应该是相同的。据我所记得,巴黎和柏林一直位于同一时区……
答案1
如果只看现在,许多时区会显得多余。但是,如果你看看过去,你会发现很多不同。举个例子,让我们看看源代码欧洲/布辛根(实际上是欧洲/苏黎世的链接)和欧洲/柏林时区。布辛根是德国飞地,完全被瑞士领土包围。
欧洲/苏黎世:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
0:29:46 - BMT 1894 Jun # Bern Mean Time
1:00 Swiss CE%sT 1981
1:00 EU CE%sT
欧洲/柏林:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Germany 1946 only - Apr 14 2:00s 1:00 S
Rule Germany 1946 only - Oct 7 2:00s 0 -
Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
# Go with the PTB.
Rule Germany 1947 only - Apr 6 3:00s 1:00 S
Rule Germany 1947 only - May 11 2:00s 2:00 M
Rule Germany 1947 only - Jun 29 3:00 1:00 S
Rule Germany 1948 only - Apr 18 2:00s 1:00 S
Rule Germany 1949 only - Apr 10 2:00s 1:00 S
Rule SovietZone 1945 only - May 24 2:00 2:00 M # Midsummer
Rule SovietZone 1945 only - Sep 24 3:00 1:00 S
Rule SovietZone 1945 only - Nov 18 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Berlin 0:53:28 - LMT 1893 Apr
1:00 C-Eur CE%sT 1945 May 24 2:00
1:00 SovietZone CE%sT 1946
1:00 Germany CE%sT 1980
1:00 EU CE%sT
首先,请注意最后一行是完全相同的:今天两者都使用中欧(夏令时)。在此之前,一切都大不相同。德国于 1980 年采用了 CE(S)T,而瑞士一年后(1981 年)也采用了 CE(S)T。
由于荷兰和比利时都受到第一次和第二次世界大战的影响,它们的历史更加悠久,所以我就不把它们包括在这里了。你可以下载数据自己看看。这是一篇非常有趣的文章,因为它包含了对许多州计时历史的广泛研究。
答案2
简短的回答:您没有选择“阿姆斯特丹 GMT+01:00”;您选择的是“阿姆斯特丹(目前是 GMT+01:00)”。
绝对时间偏移的显示只是一个有用的指标,可以表明你的选择在今天实际上意味着什么,但它并不定义您正在做出的选择。
如果您选择“阿姆斯特丹”,并且阿姆斯特丹的时区稍后单独更改为布鲁塞尔的时区,那么您的计算机将专门跟踪阿姆斯特丹。
答案3
确定时区数据库中应包含哪些区域是以下两者之间的折衷:
- 保持区域数量和总体数据库大小合理
- 提供历史时间戳的精确转换
- 尽量减少未来民用时间定义发生变化时重新配置的需要。
“TZ 数据库”(几乎所有操作系统供应商(微软除外)均在使用)将时区定义为“自 1970 年以来本地时钟一致的国家区域”。
因此一般来说(历史上分裂的国家也有一些例外),不同国家的地方会获得不同的时区名称,即使它们自 1970 年以来一直使用相同的当地时间。
每个区域通常由其所在地区和主要城市来标识(有一些例外)。1970 年之前的数据试图准确反映区域内的主要城市,但只有当 1970 年之后存在差异时,才会将区域划分。
有些平台可能会默认隐藏一些次要区域,但这里似乎并非如此。您的列表缺少“维也纳”和“柏林”等主要区域
根据您的列表,我想知道这是否是本地化问题。也许他们认为德语国家的人会使用德语版本的操作系统。
MS 在时区方面有自己的一套做法。我不知道他们判断某个事物是否在同一时区的标准是什么,但我猜应该是“自从 Windows 开始支持时区以来,当地时间就不同的地区”。
答案4
另外需要记住的是夏令时。
一个城市可能启用了夏令时,而位于同一经度(因而是同一时区)但更靠近赤道的另一个城市则不会启用夏令时。