私はyahoo financeから日付をインポートしていますので、今日の日付と比較して3から9ヶ月後の日付であるかどうかを確認することができます。ここで日付が特定の間隔のPythonであるかどうかをチェックするには?
は、私がこれまで持っているものである:ここでは
today = time.strftime("%Y-%m-%d")
today = datetime.datetime.strptime(today, '%Y-%m-%d')
int_begin = today + datetime.timedelta(days=90)
int_end = today + datetime.timedelta(days=270)
for i in opt["Expiry"]:
transf_date = datetime.datetime.strptime(opt["Expiry"][1],'%b %d, %Y')
transf_date = datetime.datetime.strftime(transf_date,"%Y-%m-%d")
if int_begin <= transf_date and transf_date <= int_end:
print "True:",i
else:
print "False:",i
はオプトの内容[「有効期限」]
0 Jan 20, 2017 1 Jan 20, 2017 2 Jan 20, 2017 3 Jan 20, 2017 4 Jan 20, 2017 5 Jan 20, 2017 6 Jan 20, 2017 7 Jan 20, 2017 8 Jan 20, 2017 9 Jan 20, 2017 10 Jan 20, 2017 11 Jan 20, 2017 12 Jan 20, 2017 13 Jan 20, 2017 14 Jan 20, 2017 15 Jan 20, 2017 16 Jan 20, 2017 17 Jan 19, 2018 18 Jan 20, 2017 19 Jan 19, 2018 20 Jan 20, 2017 21 Mar 17, 2017 22 Jan 20, 2017 23 Mar 17, 2017 24 Jan 20, 2017 25 Mar 17, 2017 26 Apr 21, 2017 27 Jun 16, 2017 28 Jan 19, 2018 29 Jan 20, 2017 ... 432 Jan 20, 2017 433 Jan 19, 2018 434 Oct 21, 2016 435 Jan 20, 2017 436 Jan 19, 2018 437 Oct 21, 2016 438 Jan 20, 2017 439 Jan 19, 2018 440 Oct 21, 2016 441 Jan 20, 2017 442 Jan 19, 2018 443 Oct 21, 2016 444 Jan 20, 2017 445 Jan 19, 2018 446 Oct 21, 2016 447 Jan 20, 2017 448 Oct 21, 2016 449 Jan 20, 2017 450 Oct 21, 2016 451 Jan 20, 2017 452 Oct 21, 2016 453 Jan 20, 2017 454 Oct 21, 2016 455 Jan 20, 2017 456 Oct 21, 2016 457 Jan 20, 2017 458 Jan 20, 2017 459 Jan 20, 2017 460 Jan 20, 2017 461 Jan 20, 2017
である私が "同じ日付フォーマットを、持っているように思えます%Y-%m-%d "が表示されますが、まだフィルタリングされた値はありません。彼らのすべては真実のように出てきて、その間隔の中にいます。
独自のマシンでコードを実行して問題を再現できるように、 'opt [" Expiry "]'の内容を提供してください。 – Kevin
私はオプションのデータを取得しています。私は2016年から2018年の日付を取得していますので、それらのすべてが適切な間隔である必要はありません。 – VincFort
文字列の中で日付を文字列に変換するために、文字列で日付を文字列と比較できるように、たくさんのフープをジャンプしているようです。私は文字列に変換しないことをお勧めします。 datetimeオブジェクトはすでに比較可能であり、フォーマットが一致するまでに多くの時間を節約できます。 – Kevin