IANA (Internet Assigned Numbers Authority)数据文件和来自www.timeand



如何使用IANA (Internet Assigned Numbers Authority)数据文件估计当地时间?

在这个网站上,我发现以下数据:https://www.timeanddate.com/time/zone/uk/london

2015  Sun, 29 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 25 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2016  Sun, 27 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 30 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2017  Sun, 26 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 29 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2018  Sun, 25 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 28 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2019  Sun, 31 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 27 Oct, 02:00BST → GMT-1 hour (DST end)UTC

正如你所看到的,欧洲/伦敦的时间变化规则每年都不同:2018年的规则从3月25日起适用,2019年从3月31日起适用,等等。

但是我在IANA数据分布中找不到这些信息。https://www.iana.org/time-zones

From tzdata2016h.tar.gz,解压文件europe:

# Zone  NAME        GMTOFF  RULES   FORMAT  [UNTIL]
Zone    Europe/London   -0:01:15 -  LMT 1847 Dec  1  0:00s
             0:00   GB-Eire %s  1968 Oct 27
             1:00   -   BST 1971 Oct 31  2:00u
             0:00   GB-Eire %s  1996
             0:00   EU  GMT/BST

也许我不明白如何使用IANA数据?如何提取IANA数据文件?

首先查看Europe/LondonZone条目:

# Zone  NAME             GMTOFF RULES   FORMAT  [UNTIL]
Zone    Europe/London   -0:01:15 -      LMT     1847 Dec  1  0:00s
                         0:00   GB-Eire %s      1968 Oct 27
                         1:00   -       BST     1971 Oct 31  2:00u
                         0:00   GB-Eire %s      1996
                         0:00   EU      GMT/BST

每行以[UNTIL]日期结束,最后一行除外。当没有[UNTIL]日期时,意味着无限遥远的未来。因此,伦敦目前由上表中的最后一行管理,该行表示UTC偏移量为0:00,夏令时规则由Rule EU管理,使用的缩写是GMT表示"标准"时间,BST表示夏令时。

现在去找Rule EU:

# Rule      NAME    FROM    TO      TYPE    IN      ON       AT     SAVE    LETTER/S
Rule        EU      1977    1980    -       Apr     Sun>=1   1:00u  1:00    S
Rule        EU      1977    only    -       Sep     lastSun  1:00u  0       -
Rule        EU      1978    only    -       Oct      1       1:00u  0       -
Rule        EU      1979    1995    -       Sep     lastSun  1:00u  0       -
Rule        EU      1981    max     -       Mar     lastSun  1:00u  1:00    S
Rule        EU      1996    max     -       Oct     lastSun  1:00u  0       -

您正在寻找当前有效的规则。现在有两行,最后两行

倒数第二行表示从1981年开始的每一年,在3月的最后一个星期日01:00 UTC, 1:00被添加到UTC偏移量(由Zone指定)。本例中不使用包含S的最后一列。但是,如果Zone中指定的缩写包含%s,则该字母将被替换为%s

最后一行表示每年,从1996年开始,在10月的最后一个星期日01:00 UTC, 0:00被添加到UTC偏移量(由Zone指定)。

Matt Johnson在下面的评论中补充道:

您也可能对iana.org/time-zones/repository/tz-how-to.html

感兴趣

我认为这是一个如此重要的评论,它应该出现在更高可见性的答案中。感谢马特!

相关内容

  • 没有找到相关文章

最新更新