Python - 将日期转换为ISO 8601

Alo*_*kin 47 python datetime iso8601

在Python中,我如何转换这样的字符串:

星期四,2010年12月16日12:14:05 +0000

符合ISO 8601格式,同时保留时区?

请注意,原始日期是字符串,输出也应该是字符串,不是datetime或类似的.

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

unu*_*tbu 78

使用dateutil:

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
Run Code Online (Sandbox Code Playgroud)

  • 我怎么会在这结束时得到时区(z)? (8认同)

Sum*_*mar 20

Python内置的datetime包具有构建方法,可以将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()
Run Code Online (Sandbox Code Playgroud)

输出是

'2010-12-16T12:14:05'
Run Code Online (Sandbox Code Playgroud)

我写这个答案主要是为那些在UTC工作并且不需要担心时区的人.您可以去除最后6个字符以获取该字符串.

Python 2对时区没有很好的内部库支持,有关更多详细信息和解决方案,您可以参考stackoverflow 上的这个答案,其中提到使用类似于已接受答案的第三方库.

  • 时区限定符在哪里(本例中为Z)? (11认同)