Часовой пояс AoE
( Везде на Земле ; UT C -12) не определен в часовых поясах pytz
, ref. pytz.all_timezones
(v2019.3).
Sidenote: datetime.fromtimestamp()
принимает только один аргумент; позже вам нужно будет указать tzinfo
полученного объекта datetime
, используя, например, replace()
или localize()
(см. здесь для получения дополнительной информации).
Предложение, как справиться с вашей проблемой
Преобразование ваших временных меток в объекты UT C datetime
. Поскольку AoE - UT C -12, и, насколько я могу судить, не имеет летнего времени, вы можете сделать
from datetime import datetime, timezone
ts = 1582013600.5 # timestamp from tz 'AoE', UTC-12
# add 43200 seconds to get a UTC timestamp
ts_utcoffset_s = 43200 # 12 h in [s]
# ...and convert to datetime object, adding UTC as tzinfo
dt = datetime.utcfromtimestamp(ts + ts_utcoffset_s).replace(tzinfo=timezone.utc)
print(dt.isoformat())
# 2020-02-18T20:13:20.500000+00:00
Поскольку часовой пояс AoE недоступен в pytz
, вы не сможете создавать datetime
объекты с учетом часового пояса с tzinfo = AoE. Все, что вы можете получить, это наивные datetime
объекты, которые содержат время AoE, но не знают об этом. Я не рекомендовал бы работать с этим, так как это может привести к путанице. Лучше придерживайтесь UT C, когда можете.