我在获取某些日期时间转换时遇到问题。我实际上正在使用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也会有所帮助。但是如何?
答案 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