如何在Python中将RFC 822时间戳转换为可读格式?
有没有人知道有没有Python模块可以把RFC 822格式的时间戳转换成普通人能看懂的格式(就像Twitter那样)?
我找到一个叫parsedatetime的东西,但它好像是做反向转换的。
3 个回答
2
datetime.strptime
这个函数可以把时间戳转换成一个日期时间对象,这样你就可以用 datetime.strftime
来格式化它。
http://docs.python.org/library/datetime.html#strftime-strptime-behavior
8
在Python中,你可以使用rfc822模块。这个模块提供了一个叫做 parsedate 的方法。
这个方法试图根据RFC 2822的规则来解析日期。
不过,这个模块现在已经不推荐使用了。
自从2.3版本起就不推荐使用:应该优先使用email包,而不是rfc822模块。这个模块只是为了保持向后兼容而存在,在3.0版本中已经被移除了。
根据这个评论,最好使用来自 email.utils 模块的 parsedate 方法。
email.utils.parsedate(date)
编辑:
示例代码:
import email.utils
from time import mktime
from datetime import datetime
example_date = "Sat, 02 Mar 2011 15:00:00"
date_parsed = email.utils.parsedate(example_date)
dt = datetime.fromtimestamp(mktime(date_parsed))
today = datetime.today()
diff_date = today - dt # timedelta object
print "%s days, %s hours ago" \
% (diff_date.days, diff_date.seconds / 3600)
输出(目前):
31 days, 2 hours ago