如何在Python中从iso时间字符串中获取时区



例如:

my_timestamp = '2022-01-02T02:00:02-08:00'

我们知道+00:00被认为是UTC,这个时间戳-08:00指示America/Los_Angeles

有没有任何方法可以使用python中的任何日期函数显式地获取这些信息?

例如:

my_timestamp = '2022-01-02T02:00:02-08:00' # iso string
implicit_tz = someFunction(my_timestamp) # return the string "America/Los_Angeles"

这可能吗?谢谢

根据上面的注释,此代码将输出ISO字符串的所有可能时区。由你选择哪一个。

from dateutil.parser import isoparse
import dateutil.tz as dtz
import pytz
my_timestamp = '2022-01-02T02:00:02-08:00' # iso string
my_timestamp_parsed = isoparse(my_timestamp)
my_timezone = isoparse(my_timestamp).tzinfo
for name in pytz.common_timezones:
timezone=dtz.gettz(name)
try:
if timezone.utcoffset(my_timestamp_parsed) == my_timezone.utcoffset(my_timestamp_parsed):
print(name)
except AttributeError:
pass

最新更新