0

我有一个模型:

class DateModel(models.Model):
    date = models.DateField(default=None, null=True, blank=True)

我做了一些对象并得到了它:

date_obj = GroupDate.objects.all().last()
print(date_obj.date)
print(type(date_obj.date))

所以它返回了这行:

2018-11-21
<class 'datetime.date'>

这是我的问题,

如何22从日期获取日期前几天2018-11-21

像这样:

date_obj = GroupDate.objects.all().last()
some_int = 22
result_date = get_date_from_date(date_obj.date, some_int) # It is just example that I made.
print(result_date) # >>>2018-10-30

我怎样才能做到这一点?

4

1 回答 1

1

通过使用timedelta

>>> from datetime import datetime, timedelta
>>> date_obj = datetime(2018, 11, 21)
>>> some_int = 22
>>> result_date = date_obj - timedelta(days = some_int)
>>> result_date
datetime.datetime(2018, 10, 30, 0, 0)

您还可以使用dateutil中的relativedelta,它是一个功能更强大的库,具有更多选项,文档已链接。

>>> from datetime import datetime
>>> from dateutil.relativedelta import relativedelta
>>> date_obj = datetime(2018, 11, 21)
>>> some_int = 22
>>> result_date = date_obj - relativedelta(days =+ some_int)
>>> result_date
datetime.datetime(2018, 10, 30, 0, 0)
于 2018-11-21T11:46:52.853 回答