Как работает utcnow() без часовых поясов?

Я читаю на SO, что стандартная библиотека Python не определяет часовые пояса.

Кроме того, из документов даты и времени Python 2.7:

Обратите внимание, что конкретный класс tzinfo не предоставляется модулем datetime.

Тем не менее, призывая utcnow() генерирует текущее время в UTC. Кроме того, Python может также предоставить текущее местное время с now(), Я предполагаю, что это возможно только в том случае, если Python "знает" локальное смещение времени до UTC (чтобы вернуть правильные значения).

Но разве это не означает, что Python знает часовой пояс? Что мне не хватает?

1 ответ

Решение

Ваша ОС предоставляет текущий часовой пояс, а также время UTC.

Однако ОС не предоставляет другую информацию о часовом поясе, например, когда происходят переключения DST. Другими словами, вы можете получить текущее время в часовом поясе UTC, но не можете точно рассчитать местное время в течение года, так как смещение к UTC изменяется с переключениями летнего и зимнего времени.

Другие вопросы по тегам