datetime - python 如何将半个小时的时区转换为 pytz timezone对象?

  显示原文与译文双语对照的内容

我试着用它的utc偏移量指定的时区读取时间,并将它们存储为 python datetimes 。

我认为 pytz 模块提供了可用的时区,我认为完整的列表是在中给出的。 如果是这样,大部分时间可以通过使用相应的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



然而,某些时区,如纽芬兰标准时间和阿富汗时间是 GMT ( -3: 30和 +4: )的半小时偏移。 如果这些时间没有手动映射到 America/St_Johns 或者 Asia/Kabul,如何将这些时间与相应的时区一起存储?

时间:

,可以做些事尽管不是你想要的。


>>> 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



它们是不同的对象,因这里不确定你在这里之后可以做什么,但这将为你提供一个泛型对象。

...