在Python中查找距离某个日期的时间
怎么才能找到距离某个日期还有多久呢?我想知道具体的年、月、天和小时。
我希望有人能提供一个好用的函数。我想做的事情是:比如说“这条评论是在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