Python 有没有办法只处理datetime对象中的年份?

Python 有没有办法只处理datetime对象中的年份?,python,django,Python,Django,从我的问题开始,我想知道Python中是否有一种方法可以只处理datetime对象中的年份,并且知道只有年份是重要的,其他一切都必须忽略 下面是我需要做的一个例子: a = date(2014, 1, 1) a.ignore_days = True a.ignore_months = True b = date(2014, 12, 1) if a.ignore_days and a.ignore_months and (a.year==b.year): print("ok") 后

从我的问题开始,我想知道Python中是否有一种方法可以只处理datetime对象中的年份,并且知道只有年份是重要的,其他一切都必须忽略

下面是我需要做的一个例子:

a = date(2014, 1, 1) 
a.ignore_days = True
a.ignore_months = True
b = date(2014, 12, 1) 

if a.ignore_days and a.ignore_months and (a.year==b.year):
    print("ok")
后来:

a = date(2014, 12, 1) 
a.ignore_days = True
b = date(2014, 12, 8) 

if a.ignore_days and a.ignore_months and (a.year==b.year):
    print("ok")
else:
    print("different")

if a.ignore_days and (a.year==b.year) and (a.months=b.months):
    print("ok")
else:
    print("different")

if str(a)==str(b):
    print("ok")
else:
    print("different")
应输出:

ok
ok
different

我猜你只是想比较几年。在这种情况下,您可以从datetime对象中提取年份并进行比较

x = date1.year
y = date2.year

if x == y:
    do_my_stuff()

你能更具体一点并提供问题的上下文吗?好的,更新了我的问题,我希望它更好地用于PartialDateField实现。另请参阅以获取灵感。好的,但是如何知道datetime对象中只考虑年份?我已经更新了我的问题。这需要另一个数据类型[dream]好的,我将用纯C()编写我自己的新数据类型。[/dream][reality]我有一天可以解决这个问题[/reality]@OlivierPons:你不必用C语言编写它——只需用Python对它进行子类化,但你必须重写所有设置、获取和操作日期的方法;“无论如何,这需要做一些工作。”“奥利维耶蓬,我认为你的想法是错误的。如果你看你的代码,你唯一要做的就是比较年份。我就是这么回答你的。剩下的只是你不需要的混乱。