Python Glossary English

Python 3.9+zoneinfoпонятие

zoneinfo.ZoneInfo

часовые пояса

Часовой пояс из базы IANA по ключу вроде 'Europe/Moscow', учитывающий летнее время и исторические изменения.

Синтаксис

zoneinfo.ZoneInfo(key)

Передавайте его в tzinfo= или astimezone(), а не pytz-способом localize. Объекты кешируются: ZoneInfo(k) is ZoneInfo(k) — True. На Windows системной базы нет: без пакета tzdata (pip install tzdata) любой ключ даёт ZoneInfoNotFoundError — подкласс KeyError. Для фиксированного смещения без правил достаточно datetime.timezone.

Примеры

from datetime import datetime
from zoneinfo import ZoneInfo
msk = ZoneInfo('Europe/Moscow')
dt = datetime(2024, 1, 15, 12, 0, tzinfo=msk)
print(dt.utcoffset())  # → 3:00:00
print(dt.astimezone(ZoneInfo('UTC')))  # → 2024-01-15 09:00:00+00:00
print(ZoneInfo('Europe/Moscow') is msk)  # → True
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
try:
    ZoneInfo('Mars/Base')
except ZoneInfoNotFoundError as e:
    print(isinstance(e, KeyError))  # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности