Поскольку строка в формате ISO, ее можно сравнивать по значению напрямую с версией datetime
, указанной вами в формате ISO:
>>> s='2005-08-11T16:34:33Z'
>>> t=datetime.datetime(2009,04,01)
>>> t.isoformat()
'2009-04-01T00:00:00'
>>> s < t
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't compare datetime.datetime to str
>>> s < t.isoformat()
True
>>> z='2009-10-01T18:20:12'
>>> z < t.isoformat()
False
как вы видите, хотя вы не можете сравнивать строку с объектами datetime, если строки в формате ISO, их можно сравнить с .isoformat()
объектов datetime. В этом прелесть строкового представления формата даты и времени в формате ISO: оно правильно сопоставимо и правильно сортирует как строки , не требуя преобразования в другие типы.
Если вы хотите конвертировать, конечно, вы можете:
>>> datetime.datetime.strptime(s, '%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2005, 8, 11, 16, 34, 33)