개요
2022.10.24 - [Python] 날짜/시간 연산 (어제 날짜 구하기)에서 datetime.timedelta를 이용하면 시간 연산이 가능한 것을 알아보았다. 하지만 timedelta는 매개변수로 days, seconds, microseconds, milliseconds, minutes, hours, weeks와 같은 고정적인 단위를 받기 때문에 한 달 전, 1년 전 시각을 구하기에는 적절하지 않다.
그렇다면 기준일로부터 세 달 후는 어떻게 구할 수 있을까?
dateutil 설치
datetime 모듈에 대한 익스텐션 중 하나이 dateutil 모듈이 필요하다. 기본으로 제공되는 모듈이 아니기 때문에 별도로 설치를 해야 한다.
pip install python-dateutil
dateuitl.relativedelta import
relativedelta는 datetime을 대체하거나 시간의 간격을 나타내는 클래스다. 다음과 같이 import해서 사용할 수 있다.
from dateutil.relativedelta import *
시간 연산
사용 방법은 timedelta를 사용하는 것과 동일하다. 예로 들어, 오늘 기준으로 한 달 전 날짜는 아래와 같이 구할 수 있다.
from datetime import datetime
from dateutil.relativedelta import relativedelta
today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
month = relativedelta(months=1)
month_ago = today - month
print(f'today: {today}')
print(f'month_ago: {month_ago}')
참고 문서
https://walkingfox.tistory.com/109
https://docs.python.org/3/library/datetime.html#timedelta-objects
https://dateutil.readthedocs.io/en/stable/relativedelta.html