k01ken’s b10g

He110 W0r1d!

Pythonで色んな日付を取得する

開発環境は、Windows 10 Pro(64bit) + Python 3.7.6。

先月の末日を取得する

import datetime
today = datetime.date.today()

# 当月の1日
thismonth = datetime.datetime(today.year, today.month, 1)
# 先月の末日
lastmonth = thismonth + datetime.timedelta(days=-1)

print(lastmonth.strftime("%Y")) // 2021
print(lastmonth.strftime("%m")) // 05


relativedeltaモジュールを使用するとより簡単そうです。ただ、事前に以下のパッケージを取得する必要がある。python-dateutil 2.8.1

pip install python-dateutil

今日から1か月前、2か月前を取得する

from datetime import datetime
from dateutil.relativedelta import relativedelta

# 2021-06-15
print(datetime.strftime(datetime.today() - relativedelta(months=0), "%Y-%m-%d"))
# 2021-05-15
print(datetime.strftime(datetime.today() - relativedelta(months=1), "%Y-%m-%d"))
# 2021-04-15
print(datetime.strftime(datetime.today() - relativedelta(months=2), "%Y-%m-%d"))


■参考リンク
Pythonで昨日や明日、来年、去年などの日付を計算する方法