все Python 3datetimeпонятие
datetime.tzinfo
часовой пояс
Абстрактный базовый класс сведений о часовом поясе; конкретная реализация — timezone.
Синтаксис
class MyTz(datetime.tzinfo): ...
Класс абстрактный: сам экземпляр бесполезен, а наследник обязан реализовать utcoffset(), dst() и tzname(). Писать свой подкласс почти никогда не нужно — фиксированное смещение закрывает timezone, а зоны с переходом на летнее время — ZoneInfo из zoneinfo. На практике tzinfo встречается в проверке dt.tzinfo is None, которая отличает naive-дату от aware.
Примеры
import datetime
print(issubclass(datetime.timezone, datetime.tzinfo)) # → True
print(datetime.timezone.utc.tzname(None)) # → UTC
print(datetime.timezone(datetime.timedelta(hours=3)).utcoffset(None)) # → 3:00:00
d = datetime.datetime(2024, 5, 1, 12, 0, tzinfo=datetime.timezone.utc)
print(d.astimezone(datetime.timezone(datetime.timedelta(hours=3))).hour) # → 15
print(datetime.datetime(2024, 5, 1).tzinfo) # → None
print(datetime.tzinfo().utcoffset(None)) # → NotImplementedError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности