все Python 3datetimeфункция
datetime.datetime.astimezone()
методы datetime
Конвертирует aware-datetime в другой часовой пояс. Если объект naive, считает его локальным.
Синтаксис
dt.astimezone(tz=None)
Метод не сдвигает сам момент времени, а лишь пересчитывает поля под другой пояс — точка на оси времени остаётся прежней, меняются только видимые часы и tzinfo. Главная ловушка — вызвать его на naive-объекте, который на деле хранит UTC: Python примет его за локальное время машины и сдвинет неверно. Чтобы просто пометить значение поясом без пересчёта, нужен replace(tzinfo=...), а astimezone() — уже для конвертации между поясами.
Примеры
from datetime import datetime, timezone, timedelta
utc = datetime(2024, 6, 17, 10, 0, tzinfo=timezone.utc)
msk = timezone(timedelta(hours=3))
msk_dt = utc.astimezone(msk)
print(msk_dt) # 2024-06-17 13:00:00+03:00
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности