这是保存时区规则的标准格式吗?

Is this a standard format for saving timezone rules?

我正在 python-dateutil 上做一些 "software archaeology" 以完整记录(并加强)dateutil.tz.tzstr 接受的格式,我遇到了一种奇怪的时区格式,这显然是旨在明确支持(link 转到代码):

# GMT0BST,3,0,30,3600,10,0,26,7200[,3600]

只要阅读代码,我就明白了它是如何工作的。它开始时像一个 TZ 环境变量:

然后剩下的是逗号分隔的列表,分为两部分:

相当于这个字符串的GNU TZ variableGMT0BST,J89/1,J299/2:

>>> from dateutil import tz
>>> tz1 = tz.tzstr('GMT0BST,3,0,30,3600,10,0,26,7200')
>>> tz2 = tz.tzstr('GMT0BST,J89/1,J299/2')
>>> tz1 == tz2
True

这是某个地方的标准时区格式,还是 dateutil 的早期维护者之一添加的?添加自定义时区格式似乎有点奇怪,该格式表达与 GNU TZ 变量完全相同的内容,但我在搜索时区时只看到 "IANA database" 和 "POSIX TZ variable" 作为格式规则。

不,这不是任何类型的标准格式 (AFAIK)。必须是 dateutil 内部的东西。

请注意,这似乎适用于 Europe/London,正确的 POSIX 字符串(当前年份)应该是 GMT0BST,M3.3.0/1,M10.5.0