Мне нужно сравнить две даты на сервере с python на каждой строке данных. В этом случае я использовал datetime
, но из-за некоторых ограничений он будет тратить много времени на большие данные. Я использовал ниже код, чтобы создать datetime
объект и использовать в дальнейшем:Сравнение двух дат как строки
first_date = datetime.strptime(line_content[3], '%Y-%m-%dT%H:%M:%S.000000Z')
second_date = datetime.strptime(line_content[4].strip(), '%Y-%m-%dT%H:%M:%S.000000Z')
Я хочу, чтобы сравнить даты их строки и не использовать datetime
, если я делаю так, что будет много сокращения затрат времени в эти данные. поэтому используйте нижеприведенные тесты в этом отношении в python:
>>> "2016-07-28T06:04:12.000000Z" < "2016-04-28T06:04:13.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:13.000000Z"
True
>>>
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:11.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:12.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T07:04:12.000000Z"
True
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:12.000000Z"
False
>>>
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-26T06:04:12.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-29T06:04:12.000000Z"
True
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:12.000000Z"
False
>>>
Это хороший способ сравнить дату. Я имею в виду, можете ли вы показать мне пример, что этот код не будет работать?
Это нехорошо и не работает. Python сравнивает строки лексикографически. Построение объекта 'datetime' не должно быть шеей бутылки производительности. Вы уверены, что это является причиной проблемы? – DeepSpace
@DeepSpace, но если даты все отформатированы одинаково, не так ли? – Julien
@DeepSpace: поэтому очевидный нерабочий пример не имеет нулевого заполнения. Можете ли вы указать, когда 'strptime' будет делать это? – usr2564301