ライブラリを使用せずにPythonでカスタム月ごとにdatetimeを増やす方法 [重複] 質問する

ライブラリを使用せずにPythonでカスタム月ごとにdatetimeを増やす方法 [重複] 質問する

日時値の月を増やす必要がある

next_month = datetime.datetime(mydate.year, mydate.month+1, 1)

月が 12 の場合、13 になり、「月は 1..12 の範囲でなければなりません」というエラーが発生します。(年は増加すると予想しました)

timedelta を使いたかったのですが、月の引数を取りません。relativedelta python パッケージがありますが、これだけのためにインストールしたくありません。また、 strtotime を使用する解決策もあります

time = strtotime(str(mydate));
next_month = date("Y-m-d", strtotime("+1 month", time));

datetimeからstr、time、datetimeに変換するのは嫌なので、やはりライブラリです。

timedelta を使用するのと同じように、優れた簡単な解決策を持っている人はいますか?

ベストアンサー1

これは、dateutil をrelativedelta使用して日付に月を追加する簡単で簡単な方法です。

from datetime import datetime
from dateutil.relativedelta import relativedelta
    
date_after_month = datetime.today()+ relativedelta(months=1)
print('Today: ',datetime.today().strftime('%d/%m/%Y'))
print('After Month:', date_after_month.strftime('%d/%m/%Y'))
Today:  01/03/2013

After Month: 01/04/2013

注意relativedelta(months=1)と は意味が異なりますrelativedelta(month=1)。を渡すと、元の日付の月が 1 月に置き換えられますが、 を渡すと、元の日付に 1 か月が追加されます。month=1months=1

注意: これにはpython-dateutilモジュールが必要です。次のコマンド ラインでインストールします。

pip install --user python-dateutil

説明: Pythonで月の値を追加する

おすすめ記事