如何在Django中比较日期时间?

5 投票
1 回答
10726 浏览
提问于 2025-04-15 16:54

假设我有:

ds = datetime.datetime.now
dd = Entry.objects.get(pk=id).pub_date

我该如何比较上面这两个对象呢?我想要知道它们之间的时间差。请帮我解决这个问题,非常感谢!

1 个回答

19

我假设 pub_date 是一个 django.db.models.DateField,这意味着你可以把它当作一个 datetime.date 对象来使用。

如果你把它们转换成相同的类型(可以是 datetime.datetime 或者 datetime.date),然后相减,你会得到一个 datetime.timedelta 的实例。

因为你在使用 datetime.datetime.now(),如果你的 pub_date 只是一个日期,而不是完整的日期时间,你可以直接使用 ds = datetime.date.today() 来代替:

>>> ds = datetime.date.today()
>>> dd = datetime.date(2009, 12, 9)
>>> ds - dd
datetime.timedelta(2) # 2 days ago

撰写回答