gpt4 book ai didi

python - 将 Python 日期时间转换为 rfc 2822

转载 作者:IT老高 更新时间:2023-10-28 22:10:24 25 4
gpt4 key购买 nike

我想将 Python 日期时间转换为 RFC 2822 日期时间。我试过这些方法都无济于事:

>>> from email.Utils import formatdate
>>> import datetime
>>> formatdate(datetime.datetime.now())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email /utils.py", line 159, in formatdate
now = time.gmtime(timeval)
TypeError: a float is required

最佳答案

这里有一些工作代码,为了清楚起见,将其分解为简单的部分:

>>> import datetime
>>> import time
>>> from email import utils
>>> nowdt = datetime.datetime.now()
>>> nowtuple = nowdt.timetuple()
>>> nowtimestamp = time.mktime(nowtuple)
>>> utils.formatdate(nowtimestamp)
'Tue, 10 Aug 2010 20:43:53 -0000'

说明:email.utils.formatdate 想要一个时间戳——即,一个自纪元以来的秒数(及其分数)的 float 。 datetime 实例不会直接为您提供时间戳 - 但是,它可以通过 timetuple 方法为您提供时间元组,并且time.mktime 当然可以从这样的元组中制作时间戳。

编辑:在 Python 3.3 和更新版本中,您可以用更少的步骤来做同样的事情:

>>> import datetime
>>> from email import utils
>>> nowdt = datetime.datetime.now()
>>> utils.format_datetime(nowdt)
'Tue, 10 Feb 2020 10:06:53 -0000'

format_datetime docs有关使用的详细信息。

关于python - 将 Python 日期时间转换为 rfc 2822,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com