python日付と時刻のタイプは初めてです。
日付の値があります。
date = '2018-11-10 10:55:31+00:00'
この日付の値が90日より古いことを確認する必要があります。
私は試した :
from datetime import datetime
from datetime import timedelta
past = datetime.now() - timedelta(days=90)
date = '2018-11-10 10:55:31+00:00'
if past > date :
print("This is older than 90 days")
次のエラーで失敗しました:TypeError: '>' not supported between instances of 'datetime.datetime' and 'str'
これは、「過去」の日付形式と渡した日付値が異なるためと考えられます。
どうすればこれを思い付きますか?
dateutil
パッケージを使用して、日付文字列date
を `datetimeオブジェクトに変換し、次のコマンドで条件を確認できます。
from dateutil import parser
past = datetime.now() - timedelta(days=90)
new_date = parser.parse("2018-11-10 10:55:31+00:00")
if past > new_date :
print("This is older than 90 days")
そのこと : )
日付文字列をdatetime
に変換する必要があります。いくつかの方法でこれを行うことができます。
datetime.strptime
を使用するたとえば、比較の前にまずdatetime
に変換します。これには、事前にフォーマットを正確に指定する必要があります。
date = '2018-11-10 10:55:31+00:00'
date = datetime.strptime(date[:-6], '%Y-%m-%d %H:%M:%S')
print(date)
datetime.datetime(2018, 11, 10, 10, 55, 31)
人気のあるツールの1つは dateutil.parser
です。これは、最も一般的な日時形式を解析できますなし事前に指定された形式:
from datetime import datetime, timedelta
from dateutil import parser
past = datetime.now() - timedelta(days=90)
date1 = '2018-11-10 10:55:31+00:00'
date2 = '2017-11-10 10:55:31+00:00'
for date in (date1, date2):
if past > parser.parse(date[:-6]):
print(f'This is older than 90 days: {date}')
This is older than 90 days: 2017-11-10 10:55:31+00:00