Python

[Python] 시간 연산 (한 달 전 구하기)

비번변경 2022. 12. 28. 20:51

개요

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