Посты с тэгом time zone


Питон: времена, даты и временные зоны

В статье Питон: времена, даты и временные зоны я рассказывал, что такое абсолютное и относительное время в терминах Питона.

И упоминал, что сравнение относительного и абсолютного времени выбросит исключение TypeError. В Python 3.3 ситуация изменилась.

Относительное и абсолютное времена всё ещё нельзя сравнивать на упорядоченность (больше или меньше). Сравнение на эквивалентность никогда не срабатывает, при этом ошибки нет.

Пример:

>>> from datetime import datetime, timezone
>>> naive = datetime.now()
>>> aware = datetime.now(timezone.utc)
>>> naive < aware
Traceback (most recent call last):
  ...
TypeError: can't compare offset-naive and offset-aware datetimes
>>> naive == aware
False

Ещё раз подчеркиваю: относ



Питон: времена, даты и временные зоны

Сегодня поговорим о дате-времени.

При этом я не хочу отдельно останавливаться на модуле time - слишком он низкоуровневый.

Эта статья будет почти исключительно посвящена модулю datetime, предоставляющему довольно красивый и понятный интерфейс.

Давайте посмотрим на элементарный пример:

>>> from datetime import *
>>> dt = datetime.now()

Что может быть проще?

Правильно ли так писать? Ответ будет довольно неожиданным: когда как...

Дело в том, что в программах, как бы это парадоксально не звучало, одновременно существуют два типа времени, которые логически не перекрываются.

Назовем их относительным и абсолютным временем.

Относительное время

Этот тип времени никогда не пересекает границ программы, не сохраняется в базе данных и не передается по сети.

Используется для разных целей: измерения временных интервалов, общения с пользовател