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

发布于 2024-10-29 06:28:19 字数 172 浏览 10 评论 0原文

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

我发现 parsedatetime ,它似乎起到了相反的作用。

Does anyone know of a Python module that will convert an RFC 822 timestamp into a human readable format (like Twitter does) in Python?

I found parsedatetime, which seems to do the reverse.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情归归情 2024-11-05 06:28:19

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

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

但是,此模块已弃用

自版本 2.3 起已弃用:应优先使用电子邮件包而不是 rfc822 模块。该模块的存在只是为了保持向后兼容性,并已在 3.0 中删除。

根据此评论,最好使用 parsedate 方法href="http://docs.python.org/library/email.util.html#email.utils.parsedate">email.utils 模块。

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

In python, you can use rfc822 module. This module provides the parsedate method.

Attempts to parse a date according to the rules in RFC 2822.

However, this module is deprecated.

Deprecated since version 2.3: The email package should be used in preference to the rfc822 module. This module is present only to maintain backward compatibility, and has been removed in 3.0.

According to this comment, it's better to use the parsedate method from the email.utils module.

email.utils.parsedate(date)

EDIT:

Example code :

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)

Output (for now) :

31 days, 2 hours ago
月棠 2024-11-05 06:28:19

datetime.strptime 会将时间戳转换为日期时间对象,您可以使用 datetime.strftime 对其进行格式化

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

datetime.strptime will turn the times stamp into a datetime object which you can format with datetime.strftime

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文