IANA(互联网编号分配机构)数据文件和来自 www.timeanddate.com 的数据
IANA (Internet Assigned Numbers Authority) data files and data from www.timeanddate.com
如何使用 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
如您所见,Europe/London每年的时间变更规则都不一样:2018年的规则适用于3月25日,2019年的规则适用于3月31日,依此类推。
但是我找不到关于 IANA 数据分布的信息。
https://www.iana.org/time-zones
来自 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 数据文件?
您首先查看 Zone
条目 Europe/London
:
# 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]
日期,则表示无限远的未来。所以伦敦目前由上面 table 中的最后一行管理,其中表示 UTC 偏移量为 0:00,夏令时规则由 Rule EU
管理,要使用的缩写是GMT
表示 "standard" 时间,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 年开始,每年三月的最后一个星期日 01:00 UTC,1:00 被添加到 UTC 偏移量(由 Zone
).此示例中未使用包含 S
的最后一列。但是如果 Zone
中指定的缩写包含 %s
,那么这个字母将被替换为 %s
.
最后一行表示,从 1996 年开始,每年 10 月的最后一个星期日 01:00 UTC,0:00 添加到 UTC 偏移量(由 Zone
).
Matt Johnson在下面的评论中补充:
You may also be interested in iana.org/time-zones/repository/tz-how-to.html
我认为这是一个非常重要的评论,它应该出现在答案中以获得更高的知名度。谢谢马特!
如何使用 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
如您所见,Europe/London每年的时间变更规则都不一样:2018年的规则适用于3月25日,2019年的规则适用于3月31日,依此类推。
但是我找不到关于 IANA 数据分布的信息。 https://www.iana.org/time-zones
来自 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 数据文件?
您首先查看 Zone
条目 Europe/London
:
# 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]
日期,则表示无限远的未来。所以伦敦目前由上面 table 中的最后一行管理,其中表示 UTC 偏移量为 0:00,夏令时规则由 Rule EU
管理,要使用的缩写是GMT
表示 "standard" 时间,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 年开始,每年三月的最后一个星期日 01:00 UTC,1:00 被添加到 UTC 偏移量(由 Zone
).此示例中未使用包含 S
的最后一列。但是如果 Zone
中指定的缩写包含 %s
,那么这个字母将被替换为 %s
.
最后一行表示,从 1996 年开始,每年 10 月的最后一个星期日 01:00 UTC,0:00 添加到 UTC 偏移量(由 Zone
).
Matt Johnson在下面的评论中补充:
You may also be interested in iana.org/time-zones/repository/tz-how-to.html
我认为这是一个非常重要的评论,它应该出现在答案中以获得更高的知名度。谢谢马特!