在Python中查找距离某个日期的时间

5 投票
5 回答
19210 浏览
提问于 2025-04-15 15:07

怎么才能找到距离某个日期还有多久呢?我想知道具体的年、月、天和小时。

我希望有人能提供一个好用的函数。我想做的事情是:比如说“这条评论是在2个月3天前发布的”或者“这条评论是在1年5个月前发布的”。

5 个回答

2

假设你有一个未来的日期时间,保存在一个叫做 eta 的变量里:

(eta - datetime.datetime.now()).total_seconds()

日期时间之间的差值会得到一个叫做 timedelta 的对象,这个对象有一个方法叫做 total_seconds。就这么简单 :)

9

你应该使用 dateutil 里的 relativedelta。

from dateutil.relativedelta import relativedelta
import datetime
today = datetime.date.today()
rd = relativedelta(today, datetime.date(2001,1,1))
print "comment created %(years)d years, %(months)d months, %(days)d days ago" % rd.__dict__
9

这里提到的是Python中的一个叫做datetime的模块。这个模块里面有两个重要的东西,一个是datetime对象,另一个是timedelta对象。它们可以帮助你计算时间,比如告诉你有多少天和多少秒。

In [5]: datetime.datetime(2009, 10, 19) - datetime.datetime.now()
Out[5]: datetime.timedelta(2, 5274, 16000)

In [6]: td = datetime.datetime(2009, 10, 19) - datetime.datetime.now()

In [7]: td.days
Out[7]: 2

In [8]: td.seconds
Out[8]: 5262

撰写回答