2014-11-15 162 views
1

我只有monthyear,我想比较如果期间(一整个月的)是二datetime对象之间。例如,如果我有这两个日期:检查日期范围只月份和年份在Python

min_post_date = 2013-03-07 00:00:00 
max_post_date = 2014-01-01 00:00:00 

我只有一年2013,和一个月03,它应该给我True02-2013应该给False04-2014应该给False当然08-2013的应该给True

你会推荐什么?

谢谢。

+0

你测试日期的格式是什么?像'08-2013' – Kasramvd

+0

我只有月和年,我可以适应格式。 – eLRuLL

回答

2

你可以先计算在开始的两个日期和您的月末:

from calendar import monthrange 
from datetime import date, datetime 

begin = date(year, month, 1) 
end = date(year, month, monthrange(year, month)[1]) 

然后,你可以简单地检查,要么beginend秋天的范围内:

(min_post_date <= begin <= max_post_date) or (min_post_date <= end <= max_post_date) 

这是假设你解析min_post_datemax_post_date与:

min_post_date = datetime.strptime(min_post_date.split()[0], "%Y-%m-%d").date() 

max_post_date类似。

相关问题