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

如何在Python中将RFC 822时间戳转换为人类可读的格式?,python,rfc822,Python,Rfc822,有人知道Python模块会将RFC 822时间戳转换为Python中的人类可读格式(就像Twitter一样)吗 我找到了,似乎正好相反。datetime.strtime将时间戳转换为datetime对象,您可以使用datetime.strftime 请参见 在python中,您可以使用rfc822模块。本模块提供了方法 尝试根据RFC 2822中的规则分析日期 但是,此模块已弃用 自版本2.3以来已弃用:电子邮件包应优先于rfc822模块使用。此模块仅用于保持向后兼容性,已在3.0中删除 根据此

有人知道Python模块会将RFC 822时间戳转换为Python中的人类可读格式(就像Twitter一样)吗


我找到了,似乎正好相反。

datetime.strtime
将时间戳转换为datetime对象,您可以使用
datetime.strftime

请参见


在python中,您可以使用rfc822模块。本模块提供了方法

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

但是,此模块已弃用

自版本2.3以来已弃用:电子邮件包应优先于rfc822模块使用。此模块仅用于保持向后兼容性,已在3.0中删除

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

编辑:

示例代码:

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)
产出(目前):


您好,您知道一种将parsedate的输出转换为“人类可读”格式的方法吗,类似于twitter的方法?例如,两个小时前。我刚刚注意到上面的示例假设原始格式是GMT格式。您能否更正它,以便它能够说明时区?我试图用parsedate_tz替换parsedate,但没有成功。再次感谢。
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