Ответ 1
Для этого вы можете использовать dateutil. Чтобы получить локальный часовой пояс прямо сейчас:
>>> import dateutil.tz
>>> import datetime
>>> localtz = dateutil.tz.tzlocal()
>>> localtz.tzname(datetime.datetime.now(localtz))
'EDT'
Сейчас я в восточном дневном свете. Вы можете увидеть, как это изменится в EST в будущем, после перехода на летнее время:
>>> localtz.tzname(datetime.datetime.now(localtz) +
datetime.timedelta(weeks=20))
'EST'
Если вам требуется смещение от UTC, вы можете использовать функцию utcoffset. Он возвращает timedelta:
>>> localtz.utcoffset(datetime.datetime.now(localtz))
datetime.timedelta(-1, 72000)
В этом случае, поскольку я UTC-4, он возвращает -1 дней + 20 часов. Вы можете конвертировать его в часы, если это необходимо:
>>> localoffset = localtz.utcoffset(datetime.datetime.now(localtz))
>>> localoffset.total_seconds() / 3600
-4.0