从datetime字段中减去整数值

时间:2014-01-25 07:03:52

标签: python django python-2.7

我想从datetime字段中减去一个整数值。此处date_joineddatetime字段,age是整数字段。

views.py

def index(request):  
    profiles = profiles.objects.all()
    for profile in profiles: 
        age = person.age
        date_joined = person.date_joined
        date_of_birth = date_joined - age
        p = date_of_birth(date_of_birth = date_of_birth,activated = 1)
        p.save()

models.py

class profiles(models.Model):
    date_joined =  models.DateTimeField (max_length=1)
    age = models.IntegerField()

1 个答案:

答案 0 :(得分:1)

使用:

date_joined - (datetime.timedelta(365) * age)

age中减去date_joined年。

请注意,这是一个很好的快速解决方案,但不是很强大。请考虑以下输出:

>>> datetime.datetime(2013, 12, 12) - datetime.timedelta(365) * 15
datetime.datetime(1998, 12, 16, 0, 0)

正如您所看到的,由于闰年(实际上有366天的年数),结果是我们实际想要的日期后4天。一个更强大的解决方案是:

date_joined.replace(year = date_joined.year - age)