이 조건 True
은 시간을 비교하기 때문에 같은 날이더라도 항상 평가됩니다 .
from datetime import datetime
# ...
if date_num_posts < datetime.today():
날짜가 같은 날인지 어떻게 확인할 수 datetime.today()
있습니까?
답변
날짜 만 비교하고 싶다면
yourdatetime.date() < datetime.today().date()
또는 당연히
yourdatetime.date() == datetime.today().date()
같은 날짜 인지 확인하려면 .
문서 는 일반적으로 도움이됩니다. 또한 일반적으로에 대한 첫 번째 Google 결과입니다 python thing_i_have_a_question_about
. 귀하의 질문이 “snake”라는 함수 / 모듈에 관한 것이 아니라면.
기본적으로 datetime
모듈에는 특정 시점을 저장하는 세 가지 유형이 있습니다.
date
년, 월, 일time
시, 분, 초, 마이크로 초, 시간대 정보datetime
날짜와 시간을 결합합니다. 이 방법을 가지고date()
및time()
해당 얻을 수date
및time
개체를하고 편리한 거기에combine
결합하는 기능date
과time
으로는datetime
.
답변
-
날짜 값만 비교해야하는 경우 다음 코드를 사용할 수 있습니다.
if yourdate.day == datetime.today().day: # do something
-
두 날짜의 차이가 허용 되는지 확인해야하는 경우 timedelta 를 사용할 수 있습니다
.if (datetime.today() - yourdate).days == 0: #do something
-
날짜 부분 만 비교하려면 다음을 사용하면됩니다.
from datetime import datetime, date if yourdatetime.date() < datetime.today().date() # do something
timedelta의 형식은 다음과 같습니다.
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
따라서 실제로 필요한 것에 따라 일, 초, msec, 분 등으로 diff를 확인할 수 있습니다.
from datetime import datetime
if (datetime.today() - yourdate).days == 0:
#do something
두 날짜가 정확히 동일한 지 확인해야하는 경우 timedelta (0)를 사용할 수 있습니다.
from datetime import datetime, timedelta
if (datetime.today() - yourdate) == timedelta(0):
#do something
답변
시간, 분, 초 및 마이크로 초를 원하는대로 설정할 수 있습니다.
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
그러나 진실성의 대답은 아마도 그들이 모두 0이 될 때 가장 좋을 것입니다. .date()
시간 s를
replace()
한 번 대 수백 번의 호출 만 수행하면되므로 수백 개의 datetime을 비교해야하는 경우 더 빠를 수 있습니다.date()
답변
all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])
를 사용하여 비교해야 .date()
하지만, 예를 들어 월별 또는 분별로 비교하려는 경우를 대비하여이 방법을 예제로 남겨 둡니다.