Django datetime.date到时间戳转换

时间:2012-09-17 04:43:22

标签: python django python-datetime

我在获取某些日期时间转换时遇到问题。我实际上正在使用django,在模型字段中我使用了date字段而不是datetime字段。现在我需要显示时差,我从djangosnippets得到了它的片段。但是接受时间戳。

所以我很困惑,实际上是什么是python时间戳,以及如何制作它。我尝试了不同的东西,如下所示:

publish_date.timetuple()

但是这说'datetime.date' object has no attribute 'mktime'。我猜datetime.datetime有这个mktime而不是datetime.date所以我不能使用它。

int(parse(publish_date).strftime('%s'))

此处解析来自名为dateutil的第三方模块,但这次它会出现以下错误。

datetime.date' object has no attribute 'read'

它为以下代码提供了同样的错误:

humanizeTimeDiff(publish_date)

所以我应该尝试将datetime.date对象转换为时间戳的任何更好的想法或方法。似乎转换datetime.datetime也会有所帮助。但是如何?

1 个答案:

答案 0 :(得分:2)

由于您的数据库中没有任何时间信息(仅限日期),因此您只能计算天数的差异。为此,只需减去日期对象即可。这将产生timedelta object,表示两个日期(或日期时间)对象之间的差异。

>>> d1
datetime.date(2012, 9, 16)
>>> d2
datetime.date(2012, 9, 17)
>>> d2-d1
datetime.timedelta(1)
>>> print d2-d1
1 day, 0:00:00
>>> print (d2-d1).days
1