Python - 如何计算自 X 日期以来经过的时间?
Posted
技术标签:
【中文标题】Python - 如何计算自 X 日期以来经过的时间?【英文标题】:Python - How to calculate the elapsed time since X date? 【发布时间】:2012-01-03 10:38:42 【问题描述】:我有一个包含文章的数据库表,每一篇文章都有一个提交日期。我需要计算文章在数据库中发表后的天数和小时数,例如:
This article has been published 4 hours ago.
This article has been published 3 days and 4 hours ago.
已经有一些我可以重复使用的代码来做到这一点?我在谷歌上搜索过,但也许我没有使用正确的词。
有什么线索可以帮到我吗?
最好的问候,
【问题讨论】:
【参考方案1】:看看datetime
package,它有你需要的一切。
当您从另一个日期时间中减去一个日期时间时,您会得到一个 timedelta
对象。您可以使用total_seconds()
以秒为单位获取持续时间,并使用除法将其转换为小时和天。那么你唯一的工作就是把它格式化成一个可读的字符串。
【讨论】:
FWIW, str() 在 datetime.timedelta 对象上调用会创建一个格式如下的字符串:'4 days, 23:58:57.256000' 我认为没有办法更改格式,但是如果它是可接受的格式,它会为您节省一些工作。 很好的答案,但请注意timedelta类的相关方法是total_seconds【参考方案2】:我会将提交的日期转换为datetime
,然后使用https://gist.github.com/207624 之类的东西将datetime
转换为人性化字符串。
【讨论】:
投反对票的人:您能解释一下为什么您认为这是一个糟糕的答案,以便我可以改进我未来的答案吗? 嗨。您在代码的第 9 行有一个简单的错误。它说:dt = otherdate - now
但实际上应该反过来。也许这就是反对者投反对票的原因。以上是关于Python - 如何计算自 X 日期以来经过的时间?的主要内容,如果未能解决你的问题,请参考以下文章
如何计算自特定列中发生事件以来经过的时间 - Pandas DataFrames
如何获得自 1970 年 1 月 1 日以来 Python 日期时间对象的秒数?
如何在 Python 中将日期时间对象转换为自纪元(unix 时间)以来的毫秒数?