Встречается на собеседованиях • сегодня

Почему datetime прибегает к дополнительным timezone

В Python модуль datetime по умолчанию работает с наивными (naive) датами и временем, не учитывая часовые пояса. Это может привести к ошибкам при работе с разными регионами. Для коррекции используется timezone:

  1. Сравнение времени: без часового пояса 2023-01-01 12:00 в Нью-Йорке и Лондоне будут считаться одинаковыми, хотя разница — 5 часов.
  2. Сериализация/десериализация: при передаче данных между серверами в разных поясах нужна явная привязка к UTC или локальному времени.

Пример:

python
from datetime import datetime, timezone

naive = datetime.now()  # без пояса
aware = datetime.now(timezone.utc)  # с UTC
print(naive == aware)  # TypeError: can't compare offset-naive and offset-aware datetimes

Использование timezone делает время явным и предотвращает ошибки логики. Рекомендуется всегда работать с aware-объектами в распределённых системах.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы