这是保存时区规则的标准格式吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是保存时区规则的标准格式吗?相关的知识,希望对你有一定的参考价值。
我正在python-dateutil
上做一些“软件考古”来完全记录(并收紧)dateutil.tz.tzstr
接受的格式,我遇到了一个奇怪的时区格式,显然是明确支持的(链接转到代码):
# GMT0BST,3,0,30,3600,10,0,26,7200[,3600]
只是阅读代码,我已经弄清楚它是如何工作的。它开始像TZ
环境变量:
GMT
:标准时间缩写0
:标准偏移量(小时)BST
:DST的缩写
其余的是逗号分隔的列表,分为两部分:
3,0,30,3600
:DST-> STD转换时间说明符 - 月份,星期几,星期几,转换发生午夜后的秒数(请注意,当“月份周”为0时,后面的数字实际上是该月的某天)10,0,26,7200
:STD-> DST转换时间说明符 - 与上面相同[,3600]
:如果指定,这表示在DST期间偏移量有多大(默认为1小时)
相当于这个字符串的GNU TZ
variable是GMT0BST,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数据库”和“POSIX TZ变量”作为格式。
答案
不,这不是任何形式的标准格式(AFAIK)。必须是dateutil内部的东西。
请注意,这似乎是针对Europe/London
,正确的POSIX字符串(当前年份)将是GMT0BST,M3.3.0/1,M10.5.0
以上是关于这是保存时区规则的标准格式吗?的主要内容,如果未能解决你的问题,请参考以下文章