Python - Convert string representation of date to ISO 8601
在Python中,我如何转换这样的字符串:
Thu, 16 Dec 2010 12:14:05 +0000
符合ISO 8601格式,同时保留时区?
请注意,原始日期是字符串,输出也应该是字符串,而不是
不过,我使用第三方库没有问题。
使用dateutil:
1 2 3 4 5 | 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包具有构建方法,可以将datetime对象转换为isoformat。 这是一个例子:
1 2 3 | >>>from datetime import datetime >>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S') >>>date.isoformat() |
输出是
1 | '2010-12-16T12:14:05' |
我写这个答案主要是为那些在UTC工作并且不需要担心时区的人。 您可以去除最后6个字符以获取该字符串。
Python 2对时区没有很好的内部库支持,有关更多详细信息和解决方案,您可以参考stackoverflow上的这个答案,其中提到使用类似于已接受答案的第三方库。