我可以在python中编写什么函数来确定f
的日期是否大于t
,忽略日组件 - 它显然是什么?
t = datetime.date(2014, 12, 30)
f = datetime.date(2015, 1 ,2)
我尝试了以下内容:
if t.month > f.month:
但是,这不起作用,因为它没有考虑到这一年。我只想使用年份和月份 - 而不是日期。
请注意't'也可能是datetime.datetime(2015, 2, 2)
答案 0 :(得分:4)
您可以将日期与设置为day
的{{1}}组件进行比较:
1
或比较年份和月份:
t.replace(day=1) < f.replace(day=1)
使用元组比较更容易测试后者:
if t.year < f.year or (t.year == f.year and t.month < f.month):
演示:
if (t.year, t.month) < (f.year, f.month):
答案 1 :(得分:0)
错误......直接比较日期有什么问题吗?
>>> import datetime
>>> t = datetime.date(2014, 12, 30)
>>> f = datetime.date(2015, 1 ,2)
>>> t > f
False
>>> t < f
True
>>>
现在,如果您希望同一年和同月的两个日期相等,则只需比较年份和月份:
>>> t.strftime("%Y%m") <= f.strftime("%Y%m")
True
>>> g = datetime.date(2015, 1, 5)
>>> g.strftime("%Y%m") > f.strftime("%Y%m")
False
>>> g.strftime("%Y%m") == f.strftime("%Y%m")
True
更简单(成本更低):
>>> (t.year, t.month) <= (f.year, f.month)
True
>>> (g.year, g.month) == (f.year, f.month)
True
答案 2 :(得分:0)
from datetime import datetime
t = datetime(2014, 12, 30)
f = datetime(2015, 1 ,2)
print t<f