Python - 두 날짜, 시간 비교

Python에서 날짜/시간(date, datetime)을 비교하는 방법에 대해서 알아보겠습니다.

1. date 비교

date는 날짜 정보만 갖고 있는 클래스입니다.

두개의 날짜 비교

아래와 같이 <, >, = 연산자를 이용하여 두개의 date를 비교할 수 있습니다.

from datetime import date

date1 = date(2021, 1, 1)
date2 = date(2023, 7, 9)

if date1 < date2:
    print("date1이 date2보다 이전입니다.")
elif date1 > date2:
    print("date1이 date2보다 이후입니다.")
else:
    print("date1과 date2가 같습니다.")

Output:

date1이 date2보다 이전입니다.

현재 날짜와 비교

현재 시간에 대한 date 객체는 today()로 가져올 수 있습니다. 그리고 위와 같이 비교 연산자를 이용하여 date 객체의 크기를 비교할 수 있습니다.

from datetime import date

current_date = date.today()
target_date = date(2022, 12, 31)

if current_date < target_date:
    print("현재 날짜는 target_date보다 이전입니다.")
elif current_date > target_date:
    print("현재 날짜는 target_date보다 이후입니다.")
else:
    print("현재 날짜와 target_date가 같습니다.")

Output:

현재 날짜는 target_date보다 이후입니다.

날짜 문자열 비교

날짜 정보가 date 객체가 아닌, 문자열로 되어있을 때, 아래와 같이 문자열을 date 객체로 변환하고 비교 연산자로 비교할 수 있습니다.

from datetime import datetime

date_str1 = "2021-01-01"
date_str2 = "2023-07-09"

date1 = datetime.strptime(date_str1, "%Y-%m-%d").date()
date2 = datetime.strptime(date_str2, "%Y-%m-%d").date()

if date1 < date2:
    print("date1이 date2보다 이전입니다.")
elif date1 > date2:
    print("date1이 date2보다 이후입니다.")
else:
    print("date1과 date2가 같습니다.")

Output:

date1이 date2보다 이전입니다.

2. datetime 비교

datetime은 날짜와 시간정보를 모두 갖고 있는 클래스입니다.

두개의 datetime 비교

아래와 같이 >, <, = 연산자를 이용하여 두개의 datetime 객체의 크기를 비교할 수 있습니다.

from datetime import datetime

datetime1 = datetime(2021, 1, 1, 12, 0, 0)
datetime2 = datetime(2023, 7, 9, 9, 30, 0)

if datetime1 < datetime2:
    print("datetime1이 datetime2보다 이전입니다.")
elif datetime1 > datetime2:
    print("datetime1이 datetime2보다 이후입니다.")
else:
    print("datetime1과 datetime2가 같습니다.")

Output:

datetime1이 datetime2보다 이전입니다.

현재 시간과 비교

datetime.today()는 현재에 대한 datetime 객체를 리턴하며, 비교 연산자를 이용하여 현재 시간과 특정 시간을 비교할 수 있습니다.

from datetime import datetime

datetime1 = datetime.today()
datetime2 = datetime(2023, 7, 9, 9, 30, 0)

if datetime1 < datetime2:
    print("datetime1이 datetime2보다 이전입니다.")
elif datetime1 > datetime2:
    print("datetime1이 datetime2보다 이후입니다.")
else:
    print("datetime1과 datetime2가 같습니다.")

Output:

datetime1이 datetime2보다 이후입니다.

datetime 문자열 비교

datetime 형식의 문자열을 갖고 있을 때, 먼저 문자열을 datetime 객체로 변환하고 비교 연산자를 이용하여 시간을 비교할 수 있습니다.

from datetime import datetime

datetime_str1 = "2021-01-01 12:00:00"
datetime_str2 = "2023-07-09 09:30:00"

datetime1 = datetime.strptime(datetime_str1, "%Y-%m-%d %H:%M:%S")
datetime2 = datetime.strptime(datetime_str2, "%Y-%m-%d %H:%M:%S")

if datetime1 < datetime2:
    print("datetime1이 datetime2보다 이전입니다.")
elif datetime1 > datetime2:
    print("datetime1이 datetime2보다 이후입니다.")
else:
    print("datetime1과 datetime2가 같습니다.")

Output:

datetime1이 datetime2보다 이후입니다.
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha