APIリクエストへの入力として、昨日の日付をYYYY-MM-DD
形式の文字列として取得する必要があります。次の作業バージョンがあります。
yesterday = datetime.date.fromordinal(datetime.date.today().toordinal()-1)
report_date = str(yesterday.year) + \
('-' if len(str(yesterday.month)) == 2 else '-0') + str(yesterday.month) + \
('-' if len(str(yesterday.day)) == 2 else '-0') + str(yesterday.day)
これを行うには、他の何よりも教育目的に興味がある、よりエレガントな方法が必要です!
今日の日付から1日を差し引くだけです。 datetime.timedelta(1)
は、 timedelta
オブジェクト になります。これは1日の期間であり、datetime
オブジェクトから減算できます。次に、 datetime.strftime
をorerで使用して、 espected format に基づいて日付オブジェクトを文字列に変換できます。
>>> from datetime import datetime, timedelta
>>> datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')
'2015-05-26'
datetime.strftime
関数を呼び出す代わりに、strftime
オブジェクトのdatetime
メソッドを直接使用することもできます。
>>> (datetime.now() - timedelta(1)).strftime('%Y-%m-%d')
'2015-05-26'
today()
メソッドを使用して現在の日付を計算し、timedelta()
を使用して日付を減算する別の回答。残りの手順は同じままです。
https://docs.python.org/3.7/library/datetime.html#timedelta-objects
from datetime import date, timedelta
today = date.today()
yesterday = today - timedelta(days = 1)
print(today)
print(yesterday)
Output:
2019-06-14
2019-06-13
>>> import datetime
>>> datetime.date.fromordinal(datetime.date.today().toordinal()-1).strftime("%F")
'2015-05-26'