How can I convert a half-hour timezone to a pytz timezone object?
我试图用它的UTC-offset指定的时区读取时间并将它们存储为python datetimes。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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 |
然而,一些时区,如纽芬兰标准时间和阿富汗时间,与GMT相差半小时(分别为-3:30和+4:30)。 如何使用适当的时区存储这些时间,而无需手动将这些特定偏移映射到
不要使用
通常,utc偏移不足以指定时区,即,相同时区可能在不同时间具有不同的utc偏移。 反之,多个时区可能在某个时刻具有相同的utc偏移。
如果给定一个具有相应日期的固定utc偏移量,那么您可以使用任何
如果您想获得其他日期的正确时间,则必须将输入数据映射到正确的时区ID,例如
oyu可以做些什么,虽然不是你想要的。
1 2 3 4 | >>> 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的任意偏移量。