GMT+01:00 阿姆斯特丹和 GMT+01:00 布鲁塞尔有什么区别?

Hei*_*nzi 118 time time-zone

我住在维也纳。我新重置的 Android 设备只是询问了我的时区,我有多个可用选项:

Amsterdam GMT+01:00
Belgrade GMT+01:00
Brussels GMT+01:00
Sarajevo GMT+01:00
Run Code Online (Sandbox Code Playgroud)

显然,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
Run Code Online (Sandbox Code Playgroud)

有什么不同?特别是,“浪漫标准时间”和“西欧标准时间”有什么区别?根据维基百科,它们应该是一样的。据我所知,巴黎和柏林一直在同一个时区......

Dan*_*l B 138

如果只看现在,很多时区会显得多余。然而,如果你回顾过去,你会发现很多不同之处。举个例子,让我们看看欧洲/布辛根(实际上是欧洲/苏黎世的链接)和欧洲/柏林时区的源代码。Büsingen 是一个完全封闭在瑞士领土内的德国飞地。

欧洲/苏黎世:

# 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
Run Code Online (Sandbox Code Playgroud)

欧洲/柏林:

# 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
Run Code Online (Sandbox Code Playgroud)

首先,请注意最后一行是如何相同的:两者都使用今天的中欧(夏季)时间。在此之前的一切都千差万别。德国于 1980 年采用了 CE(S)T,而瑞士在一年后的 1981 年采用了 CE(S)T。

由于荷兰和比利时都受到了第一次和第二次世界大战的影响等等,它们的历史更长,所以我不会在这里包括它们。您可以下载数据并亲自查看。这是一本非常有趣的读物,因为它包含对许多州计时历史的广泛研究。

  • 因为过去的差异可能看起来是学术性的。直到您需要比较 1980 年之前的历史日志文件中的时间戳,并在不同时区运行的系统上生成。那么您很高兴时区感知标准函数库的存在,可以转换日期/时间并正确计算这些差异。 (67认同)
  • 著名的例子:[为什么减去这两次(在 1927 年)会得到一个奇怪的结果?](http://stackoverflow.com/q/6841333/995714)。 (37认同)
  • Büsingen 是程序员的噩梦。它是衡量某些图书馆的标准:它有两个邮政编码,它需要缴纳德国所得税,但不需要缴纳增值税等等。 (11认同)

Lig*_*bit 78

简短回答:您没有选择“Amsterdam GMT+01:00”;您正在选择“阿姆斯特丹(目前为 GMT+01:00)”。

绝对时间偏移的显示只是您的选择在今天实际意味着什么的有用指标,但它并没有定义您所做的选择。

如果您选择“阿姆斯特丹”,而阿姆斯特丹的时区稍后会分别更改为布鲁塞尔的时区,则您的计算机将专门跟踪阿姆斯特丹。

  • 听起来很合理。但是,在这种情况下,显示所有主要城市名称的列表(如 Windows 那样)而不是仅选择几个(如 Android 那样)会更有意义:作为维也纳居民,我怎么知道我应该选择“阿姆斯特丹”而不是“布鲁塞尔”(这是欧盟的首都,它定义了该地区当前的夏令时规则)或“贝尔格莱德”(地理位置最接近)或“萨拉热窝”(它是欧盟的一部分)在大约 100 年前,在坏事开始发生之前,我们的帝国曾经拥有过一次)。 (9认同)
  • @Tim:没错,但是在 GMT+01:00 有超过 4 个国家(因此,超过 4 个首都城市)。 (7认同)
  • @Heinzi,因为一个时区的国家内的 2 个城市不太可能有不同的时区。通常,整个国家都会发生变化。通常,选择该国的首都。 (3认同)

plu*_*ash 12

决定在时区数据库中包含哪些区域是以下之间的折衷:

  • 保持区域数量和整体数据库大小合理
  • 为历史时间戳提供准确的转换
  • 面对未来民用时间定义的变化,最大限度地减少重新配置的需要。

“TZ 数据库”(除 Microsoft 外几乎所有操作系统供应商都使用)将时区定义为“自 1970 年以来本地时钟都已达成一致的国家区域”。

因此,即使自 1970 年以来,不同国家的地方具有相同的本地时间,通常(围绕历史国家分裂的一些例外)也会获得不同的时区名称。

每个区域通常由其区域和主要城市来标识(也有一些例外)。1970 年之前的数据试图对区域中的主要城市保持准确,但只有在 1970 年之后存在差异时才会拆分区域。

默认情况下,某些平台可能会隐藏一些次要区域,但这里似乎并非如此。您的列表缺少“维也纳”和“柏林”等主要区域

根据您的列表,我想知道这是否是本地化的事情。也许他们认为德语国家的人们将使用德语版本的操作系统。

MS 在时区上做自己的事情。我不知道他们决定某物是否在同一区域的标准是什么,但我希望它类似于“自 Windows 开始支持时区以来具有不同当地时间的地方”。