2013-10-28 2 views
1

약간 다른 스타일의 파이썬 datetimes로 작업하고 있습니다. 문제는, 나는 그들을 동일시 할 수 있고 싶다. 나는 할 수 없다.파이썬 datetime 비교하기

datetime.date(2010, 11, 15) 

어떤 반환, 출력 :

2010-11-15 

하지만, 내 말에, 나는 csv 파일에 일부 날짜를 설정하는 데 필요한 데이터베이스에서, 나는의 형식으로 날짜 시간을 얻고있다 날짜 시간으로. 나는 datetime.datetime.strptime 패키지를 사용하여 그렇게한다.

date = '11/15/2010' #The format in the CSV file 
date = date.replace('/', ' ') 
date2 = datetime.datetime.strptime(date, '%m %d %Y') 

그러나, 날짜 2, 인쇄, 출력 : 내가 던질 때

2010-11-15 00:00:00 

그리고 두 날짜가 실제로 해당하지만, True로 평가하지 않습니다 그래서, 여기 내 코드는 다음과 같습니다 그 사이에 ==이 있습니다. 시간, 분, 초를 버리기 위해 datetime.datetime.strptime을 사용하는 방법이 있습니까? 첫 번째 예제 (내 데이터베이스)에 사용 된 형식을 따르고 싶습니다. 감사합니다

+0

: http://stackoverflow.com/questions/7048828/how-can-i-parse-multiple-unknown-date-formats-in- python – Andy

+2

옆 : 왜'str.replace()'입니까? 왜''datetime.strptime ('% m/% d/% Y')'? –

+0

나는 그것을 좋아한다, 나는 파이썬 문서가 공간으로 분리되어 있기 때문에 그것을 한 것 뿐이다. 결코 그것에 어떤 생각도 넣지 않았다. –

답변

5

datetimedate을 비교하려고합니다. 비교하려면 간단히 다음을 수행하십시오.

date2.date() == datetime.date(2010,11,15) 

그리고 괜찮습니다.

A가 더 컨텍스트를 비트 :

In [1]: import datetime 

In [2]: datetime.date.today() 
Out[2]: datetime.date(2013, 10, 28) 

In [3]: datetime.datetime.now() 
Out[3]: datetime.datetime(2013, 10, 28, 11, 5, 43, 997651) 

In [4]: datetime.datetime.now() == datetime.date.today() 
Out[4]: False 

In [5]: datetime.datetime.now().date() == datetime.date.today() 
Out[5]: True 
이 질문에 도움이 될 수
+0

완벽, 고마워. –

관련 문제