Разбор и сравнение дат в Python с использованием только стандартной библиотеки - PullRequest
0 голосов
/ 16 ноября 2018

Некоторое время назад мне пришлось написать небольшой скрипт на python, который, среди прочего, анализировал строку даты в формате ISO8601 и сравнивал ее с текущей датой-временем.

Поскольку я не пишу код на Python, я искал решение. К моему большому разочарованию, все предложенные мной решения предлагали использовать сторонние библиотеки для выполнения этой работы. По сути, я сделал это (упрощенно для краткости):

import iso8601
import pytz

utc = pytz.UTC()
event_date = iso8601.parse_date('2002-10-02T15:00:00.05Z')
now = utc.localize(datetime.utcnow())

# Only now I was able to compare the dates
if event_date - timedelta(hours=3) < now:
    <do something>

Меня не устраивает тот факт, что мне пришлось импортировать две сторонние библиотеки для такой распространенной задачи.

Как выполнить вышеизложенное, используя только то, что доступно только в стандартной библиотеке Python, и избежать таких ошибок, как:

  • не может сравнивать даты и времена со смещением и наивом
  • не может сравнивать tz-naive и tz-осведомленные объекты, подобные дате и времени
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...