[Python] timedelta(months=1) 시각에 달 빼고 더하기 연산 Develop Tip

파이썬에서 datetime 모듈에 timedelta라고 있습니다.

아주 간단한 사용은 특정 시각에 얼마만큼의 시간을 더하거나 빼는 역할을 수행합니다.
(그 반대로 두 시각을 빼면 그 차이를 담고 있는 timedelta 로서의 역할도 수행합니다)

사용법은 

from datetime import datetime, timedelta
edt = datetime.now() - timedelta(hours=3)

위와 같이 하면 현재 시각에서 3시만 이전의 시각을 구합니다.

유사하게

timedelta(seconds=3) # 3초전
timedelta(hours=3) # 3시간전
timedelta(days=3) # 3일전
timedelta(weeks=3) # 3주전

과 같이 표현가능한데 찾아보니
timedelta(months=3) # 3개월전

은 없는 것이었습니다.

물론 year, month로 더하고 빼면서 캘린더를 보고 day까지 조종하면 되겠지요.
하지만 코드가 복잡해집니다.

스택오버플로우에서 찾은답은,


from dateutil.relativedelta import relativedelta
edt = datetime.now() - relativedelta(months=3)

와 같이 timedelta(months=3) 대신 relativedelta(months=3)을 이용하는 것입니다.
(주의 : 만약 2015/3/31 에 1달을 빼면 2015/2/28 일 처럼 마지막 날짜로 변경됨)

유사하게 months 대신 years 를 이용하면 년도 빼기 연산도 가능합니다.


어느 분께는 도움이 되셨기를...

덧글

  • 주아빠 2016/08/08 23:56 # 삭제 답글

    감사합니다!! 도움이 되었습니다!! ^^
  • 지훈현서아빠 2016/08/10 12:48 #

    도움이 되셨다니 저의 보람입니다~ ^^
  • 감사합니다!! 2017/01/04 21:40 # 삭제 답글

    감사합니다
  • 지훈현서아빠 2017/01/04 22:02 #

    도움이 되셨다니 저의 보람입니다~ ^^
  • 사랑방 2017/06/26 11:31 # 삭제 답글

    좋은 자료 고맙습니다.
  • 지훈현서아빠 2017/06/26 13:05 #

    도움이 되셨다니 저의 보람입니다~ ^^
  • 파이썬 초보 2018/04/27 15:04 # 삭제 답글

    많은 도움 받고 갑니당ㅠㅠ!!
  • 지훈현서아빠 2018/04/28 10:51 #

    도움이 되셨다니 저의 보람입니다~
  • 와우 2018/07/06 11:38 # 삭제 답글

    공유 감사합니다 !!!
  • 지훈현서아빠 2018/07/06 15:20 #

    도움이 되셨다니 저의 보람입니다~ ^^
  • 두두 2018/08/21 15:59 # 삭제 답글

    혹시 천재이신가요,,,,
    진짜ㅠㅠㅠㅠㅠㅠㅠㅠ너무 감사합니다
  • 지훈현서아빠 2018/08/21 17:01 #

    천재 라니요..
    당치동 않은 말씀입니다.

    대신 구글링으로 찾아서 님처럼 시행착오 하실까봐
    정리해 놓은 것 뿐입니다.

    도움이 되셨다니 저의 보람입니다..
  • 감사맨 2019/02/01 15:33 # 삭제 답글

    감사합니다. 도움이 많이 되었습니다
  • 지훈현서아빠 2019/02/01 15:37 #

    도움이 되셨다니 저의 보람입니다
  • 복학이다! 2019/02/01 17:55 # 삭제 답글

    감사합니다 도움많이 되었습니다!
  • 지훈현서아빠 2019/02/07 09:18 #

    도움이 되셨다니 저의 보람입니다~ ^^
  • 감사합니다 2019/06/04 14:56 # 삭제 답글

    감사합니다! 항상 도움만 받는 것 같습니다 :) 좋은 글 감사합니다.
  • 지훈현서아빠 2019/06/04 15:12 #

    뉘신지는 모르지만 도움이 되셨다니 저의 보람입니다~ ^^
댓글 입력 영역

구글애드텍스트