datetime.fromtimestamp
принимает аргумент tz
, который позволяет вам указать информацию о часовом поясе, см. документацию . Кроме того, если вы работаете только со смещениями UT C, вам не нужна сторонняя библиотека. Вы можете просто построить timezone
из timedelta
:
from datetime import datetime, timezone, timedelta
ts = 1596533395
dt_UTCplus2 = datetime.fromtimestamp(ts, tz=timezone(timedelta(hours=2)))
print(dt_UTCplus2)
# 2020-08-04 11:29:55+02:00
dt_UTCminus5 = dt_UTCplus2.astimezone(timezone(timedelta(hours=-5)))
print(dt_UTCminus5)
# 2020-08-04 04:29:55-05:00
Если вы работаете с часовыми поясами вместо смещений UT C, я бы посоветовал вам использовать dateutil (pytz
будет устаревшим с выпуском Python 3.9):
from datetime import datetime
from dateutil import tz
ts = 1596533395
dt_UTCplus2 = datetime.fromtimestamp(ts, tz=tz.gettz("Etc/GMT-2"))
print(dt_UTCplus2)
# 2020-08-04 11:29:55+02:00
dt_UTCminus5 = dt_UTCplus2.astimezone(tz.gettz("Etc/GMT+5"))
print(dt_UTCminus5)
# 2020-08-04 04:29:55-05:00