Python-将日期的字符串表示形式转换为 ISO8601

在 Python 中,如何像下面这样转换字符串:

Thu,16 Dec 201012:14:05 + 00002010年12月16日星期四12:14:05 + 0000

在保留时区的情况下,按照 ISO 8601格式?

请注意,最初的日期是字符串,输出也应该是字符串,而不是 datetime或类似的东西。

不过,使用第三方库没有问题。

102198 次浏览

使用 约会:

import dateutil.parser as parser
text = 'Thu, 16 Dec 2010 12:14:05 +0000'
date = parser.parse(text)
print(date.isoformat())
# 2010-12-16T12:14:05+00:00

Python 内置的 日期时间包使用内置方法将 datetime 对象转换为 isoformat:

>>>from datetime import datetime
>>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S')
>>>date.isoformat()

输出是

'2010-12-16T12:14:05'

我写这个答案主要是为了那些在 UTC 工作的人,他们不需要担心时区的问题。您可以去掉最后6个字符来获得该字符串。

Python 2对时区没有很好的内部库支持,有关更多细节和解决方案,您可以参考关于 stackoverflow 的 这个答案,其中提到了第三方库的使用,类似于公认的答案。