서버의 두 날짜를 모든 데이터 행의 파이썬과 비교해야합니다. 이 경우에는 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
를 사용하지 않는 : 나는 datetime
객체를 생성 및 추가에 사용하는 코드 아래 사용 이런 종류의 데이터. 그래서 이것에 관해서는 아래의 테스트를 파이썬으로 사용하십시오 :
>>> "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
>>>
이것은 날짜를 비교하는 좋은 방법입니까? 이 코드가 작동하지 않는다는 것을 보여주는 예를 보여줄 수 있습니까?
좋은 방법도 아닙니다. 파이썬은 문자열을 사전 적으로 비교합니다. 'datetime' 객체를 생성하는 것은 성능 병목이되어서는 안됩니다. 이것이 문제의 원인이라고 확신합니까? – DeepSpace
@DeepSpace 날짜가 모두 같은 형식으로되어있는 경우 동일하지 않습니까? – Julien
@DeepSpace : 명백한 작동하지 않는 예제에는 제로 패딩이 없습니다. 'strptime'이 그렇게 할 때 당신은 지적 할 수 있습니까? – usr2564301