Python timedelta:我不能只是在任何时间进入单位我想要整个差异的价值?

时间:2009-02-01 03:59:27

标签: python datetime timedelta

我想在我的网站上发布一些帖子之后有一些聪明的日期(“从那以后的几秒钟,从那以后的几个小时,以及之后的几周......”)我正在使用utcnow和utc之间的datetime.timedelta差异存储在数据库中的帖子。

看起来,根据文档,我必须使用days属性和seconds属性来获取我想要的花哨日期字符串。

难道我不能在任何时间进入我希望整个差异的价值单位吗?我错过了什么吗?

如果我能在几秒钟内得到完整的差异,那将是完美的。

4 个答案:

答案 0 :(得分:21)

似乎Python 2.7引入了total_seconds()方法,我相信这就是你想要的方法!

答案 1 :(得分:15)

您可以以秒为单位计算差异。

total_seconds = delta.days * 86400 + delta.seconds

不,你不是“缺少某些东西”。它不会在几秒钟内提供增量。

答案 2 :(得分:5)

  

如果我能在几秒钟内得到完整的差异,那将是完美的。

“时间”模块提供的普通 - unix-timestamp可能更符合您的口味。

我个人还没有被'datetime'中的很多内容所信服。

答案 3 :(得分:5)

就像bobince所说,你可以使用时间戳,如下所示:

# assuming ts1 and ts2 are the two datetime objects
from time import mktime
mktime(ts1.timetuple()) - mktime(ts2.timetuple())

虽然我认为这比仅仅计算timedelta对象的秒数更加丑陋......