日時値の月を増やす必要がある
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=1
months=1
注意: これにはpython-dateutil
モジュールが必要です。次のコマンド ラインでインストールします。
pip install --user python-dateutil
説明: Pythonで月の値を追加する