• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

python relativedelta(dateutil)

date: 2023-06-27 excerpt: pythonのrelativedelta(detautil)の使い方

tag: pythondeteutilrelativedelta


pythonのrelativedelta(dateutil)の使い方

概要

  • dateutilという外部パッケージに、relativedeltaという機能がある
  • datetimeのtimedeltaにはseconds, hours, daysの粒度はあるが、months, years, weekdaysの粒度はない
    • これらの不足を補う側面でrelativedeltaという機能が使える

インストール

pip

$ pip install python-dateutil

具体例

2つの日時の差を知る

import datetime
from dateutil.relativedelta import relativedelta

relativedelta(datetime.datetime.now(), datetime.date(2020, 11, 6))
"""
relativedelta(years=+4, months=+2, days=+30, hours=+16, minutes=+22, seconds=+46, microseconds=+187582)
"""

次の特定の曜日の日を知る

# 次の金曜日を知る
datetime.datetime.now() + relativedelta(weekday=calendar.FRIDAY)
"""
datetime.datetime(2023, 6, 30, 4, 6, 0, 971181)
"""

xヶ月後の日時を知る

# 一ヶ月後を知る(+30daysとかでは2月は日数が少ないのでうまく行かないが, relativedeltaを用いると計算できる)
datetime.date(2023, 2, 15) + relativedelta(months=1)
"""
datetime.date(2023, 3, 15)
"""

Google Colab

  • dateutil-relativedelta-example

参考

  • relativedelta/dateutil.readthedoc.io


pythondeteutilrelativedelta Share Tweet