【Python】relativedelta(months=1) はどういう意味?使い方と活用シーンをわかりやすく解説!

B!

Pythonで日付の計算をしたいとき、「1か月後」や「3年後」「2週間前」などの柔軟な日付操作をしたくなる場面はよくあります。

そんなときに活躍するのが、dateutil モジュールの relativedelta です。

この記事では、relativedelta(months=1) の意味と基本的な使い方を、具体例とともにわかりやすく解説します。

relativedeltaとは?

relativedelta は、Pythonの外部ライブラリ dateutil に含まれている、日付の差(=delta)を表すための機能です。

標準ライブラリ datetime.timedelta と似ていますが、relativedelta月や年などの「カレンダー単位」での加算・減算ができるのが大きな特徴です。

relativedelta(months=1) は「1か月分の差」を意味します。

これを日付と組み合わせて、「1か月後」や「1か月前」の日付を求めることができます。

基本的な使い方:1か月後の日付を求める

まずは最も基本的な使い方である、「今日から1か月後の日付を求める」例です。

例えば今日が 2025-06-18 の場合、実行結果は:

このように、月単位で日付を加算してくれます。

年をまたぐ計算も問題なし

「12月の1か月後」など、年をまたぐ場合も正しく計算できます。

出力:

月が繰り上がって年が増えるケースでも、きちんと計算してくれます。

1か月前の日付を求める

逆に、1か月前の日付を求めたいときは months=-1 を使います。

出力:

日付の方向(未来か過去か)は、months に渡す数値の正負で調整します。

月末処理も簡単

月末日をまたぐ場合も relativedelta は問題なく処理してくれます。

例えば「1月31日の1か月後」を求めてみましょう。

出力:

2月には31日がないため、自動的に**月末(2月28日)**に調整されます。
こうした「カレンダー上の自然な調整」ができるのが、relativedelta の最大の魅力です。

他の単位との組み合わせも自由

relativedelta では、月だけでなく「年・日・週・時間」など複数の単位を同時に使えます。

例えば「3年2か月と10日後」なども簡単に指定できます。

出力:

このように、細かい日付操作を1行で書けるのも relativedelta の大きな強みです。

relativedeltaとtimedeltaの違い

Python標準の timedelta は日数や秒数単位での操作は得意ですが、月や年といった単位には非対応です。

機能 timedelta relativedelta
日単位
秒・分単位
月・年単位 ×
カレンダーの調整(末日対応など) ×

「○月○日から1か月後」のような日付操作が必要な場面では、relativedeltaを選ぶべきです。

まとめ

  • relativedelta(months=1) は「1か月後」の日付差を表す
  • relativedeltadateutil モジュールに含まれる便利な日付操作ツール
  • 月や年単位、月末の調整も自動で行ってくれる
  • months=-1 で過去の日付も簡単に取得できる
  • timedelta ではできない月・年単位の処理が可能

日付の足し引きをカレンダー感覚で行いたいとき、relativedelta はとても強力なツールです。

データ加工やレポート日付の自動計算など、実務でも活躍する場面が多いので、ぜひ覚えておきましょう。

最新の記事はこちらから