如何在Python中将RFC 822时间戳转换为人类可读格式?

Sea*_* W. 2 python rfc822

有没有人知道Python模块会将RFC 822时间戳转换为Python中的人类可读格式(如Twitter所做的那样)?

我找到了解析时间,这似乎是相反的.

San*_*nda 8

在python中,您可以使用rfc822模块.此模块提供parsedate方法.

尝试根据RFC 2822中的规则解析日期.

但是,此模块已弃用.

从版本2.3开始不推荐使用:电子邮件包应优先于rfc822模块使用.此模块仅用于保持向后兼容性,并已在3.0中删除.

根据此评论,最好使用email.utils模块中的parsedate方法.

email.utils.parsedate(date)
Run Code Online (Sandbox Code Playgroud)

编辑:

示例代码:

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)
Run Code Online (Sandbox Code Playgroud)

输出(现在):

31 days, 2 hours ago
Run Code Online (Sandbox Code Playgroud)