我正在尝试读取由UTC偏移量指定的时区的时间,并将它们存储为python日期时间。
pytz模块提供了可用的时区,我认为this question中给出了完整的列表。如果是这样,大多数时间可以通过使用相应的Etc/时区并反转符号来存储:
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Etc/GMT+10
Etc/GMT+11
Etc/GMT+12
Etc/GMT+2
Etc/GMT+3
Etc/GMT+4
Etc/GMT+5
Etc/GMT+6
Etc/GMT+7
Etc/GMT+8
Etc/GMT+9
Etc/GMT-0
Etc/GMT-1
Etc/GMT-10
Etc/GMT-11
Etc/GMT-12
Etc/GMT-13
Etc/GMT-14
Etc/GMT-2
Etc/GMT-3
Etc/GMT-4
Etc/GMT-5
Etc/GMT-6
Etc/GMT-7
Etc/GMT-8
Etc/GMT-9然而,一些时区,如纽芬兰标准时间和阿富汗时间,与格林威治时间相差半小时(分别为-3:30和+4:30 )。在不手动将这些特定偏移量映射到America/St_Johns或Asia/Kabul的情况下,如何使用相应的时区存储这些时间
发布于 2015-07-16 10:38:32
有一些oyu可以做的事情,尽管不完全是你想要的。
>>> nf_offset = pytz.FixedOffset(-150) # offset is in minutes, so 150=2.5 hours
>>> nf_tz = pytz.datetime("Canada/Newfoundland")
>>> datetime.now(nf_tz).strftime("%H:%M") == datetime.now(nf_offset).strftime("%H:%M")
True它们是不同的对象,所以不能确定在这一点之后您是否能做您希望做的事情,但这将得到一个通用对象,您可以从该对象中比较UTC的任意偏移处的时间。
发布于 2015-07-16 21:45:42
请勿使用Etc/GMT±h POSIX时区。They are present only for historical reasons (and perhaps for ships in the sea)。
通常,utc偏移不足以指定时区,即,同一时区在不同时间可能具有不同的utc偏移。相反,多个时区可能在某些点具有相同的utc偏移量。
如果给你一个固定的协调世界时的偏移量和相应的日期,那么你可以使用any FixedOffset implementation。
如果您希望获得其他日期的正确时间,则必须将输入数据映射到正确的时区ids,如'America/St_Johns'。参见pytz: return Olson Timezone name from only a GMT Offset。
https://stackoverflow.com/questions/31444255
复制相似问题