Python Glossary English

все 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Сообщить о неточности