все Python 3datetimeфункция
datetime.datetime.replace()
методы datetime
Создаёт новый объект datetime/date/time с заменёнными полями. Исходный объект не изменяется — datetime неизменяем.
Синтаксис
dt.replace(year=, month=, day=, hour=, minute=, second=, microsecond=, tzinfo=)
Главная ловушка — replace(tzinfo=...): время не пересчитывается, к 10:00 просто приклеивается ярлык зоны, и 10:00 оно и остаётся. Для настоящего перевода в другую зону нужен astimezone(). Подстановка несуществующей даты (day=31 для февраля) не «подтягивается» к концу месяца, а падает с ValueError.
Примеры
from datetime import datetime
now = datetime(2024, 6, 17, 10, 30)
new = now.replace(hour=0, minute=0, second=0) # начало дня
print(new) # 2024-06-17 00:00:00
# заменить только год
next_year = now.replace(year=2025)
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности