Что выведет код Middle Стандартная библиотека обновлено

Арифметика дат и таймзоны

Вопрос

Что выведет код? По строке на каждый print.

from datetime import datetime, timedelta, timezone

t = datetime(2026, 3, 31, 23, 30, tzinfo=timezone.utc)
msk = t.astimezone(timezone(timedelta(hours=3)))
print(msk.isoformat())
print((t + timedelta(hours=1)).date())
print(msk == t)

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 2026-04-01T02:30:00+03:00, 2026-04-01, True. Перевод в зону +03:00 даёт 02:30 следующего дня.

Что выведет

2026-04-01T02:30:00+03:00
2026-04-01
True

Разбор

Перевод в зону +03:00 даёт 02:30 следующего дня. Прибавление часа к 23:30 переходит через полночь. Aware-объекты сравниваются по абсолютному моменту, поэтому одно и то же мгновение в разных зонах равно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.