繁体   English   中英

如何检查日期是否在一定间隔python中?

[英]how to check if date is in certain interval python?

我正在从Yahoo Finance导入日期,并希望将其转换为一种格式,以便我可以将其与今天进行比较,以检查日期是否在现在的3到9个月之间。

这是我到目前为止的内容:

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

这是opt [“ Expiry”]的内容

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”,但仍然没有过滤出任何值。 所有这些都真实地出现在区间内。

您正在使用transf_date = datetime.datetime.strptime(opt["Expiry"][1],'%b %d, %Y')而不是transf_date = datetime.datetime.strptime(opt["Expiry"][i],'%b %d, %Y') ,这意味着即使您遍历整个opt["Expiry"] ,也始终会处理相同的条目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM