Выбор ответа Middle Стандартная библиотека обновлено
Почему не datetime.utcnow()
Вопрос
Почему datetime.utcnow() считается устаревшим (deprecated с Python 3.12)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Он отдаёт naive-время, его легко принять за локальное. utcnow() даёт текущее время UTC, но без tzinfo, и дальше его могут принять за локальное, например .timestamp() посчитает его в локальной зоне и получит сдвиг.
Варианты ответа
- Он возвращает время по Москве, а не UTC
- Он работает только в Linux и падает в Windows
- Он возвращает строку вместо объекта datetime
- Он отдаёт naive-время, его легко принять за локальноеправильный ответ
Разбор
utcnow() даёт текущее время UTC, но без tzinfo, и дальше его могут принять за локальное, например .timestamp() посчитает его в локальной зоне и получит сдвиг. Рекомендуемая замена: datetime.now(timezone.utc), это aware-объект. Платформа и тип результата тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.