例如:
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