2

有谁知道 Python 模块可以将 RFC 822 时间戳转换为 Python 中的人类可读格式(如 Twitter)?

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

4

3 回答 3

8

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

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

但是,此模块已弃用

2.3 版后已弃用:应该优先使用电子邮件包而不是 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
于 2011-04-02T14:43:08.663 回答
2

datetime.strptime会将时间戳转换为您可以格式化的日期时间对象datetime.strftime

http://docs.python.org/library/datetime.html#strftime-strptime-behavior

于 2011-04-02T14:41:20.803 回答
0

http://docs.python.org/library/rfc822.html#rfc822.parsedate

于 2011-04-02T14:42:10.007 回答