在python中使用时区转换ISO 8601日期格式

Joh*_* F. 1 python datetime iso8601

我试图将以下日期(2012-12-25T08:52:00-05:00)转换为python中的日期时间对象.但是,我无法弄清楚日期的-05:00部分是什么引用的.我只是想尝试执行以下操作:

datetime.datetime.strptime('2012-12-25T08:52:00-05:00','%Y-%m-%dT%H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

但这会产生预期的" ValueError:未转换的数据仍然存在 ".我只是想弄清楚日期的最后部分用于什么,以便我可以在python中将该字符串转换为正确的日期时间对象.

节日快乐!

bak*_*kal 5

您的日期似乎是ISO 8601格式,我不认为datetime在字符串格式的末尾处理时区信息.

你可以使用pip install python-dateutil,它的解析器可以返回一个datetime对象:

import dateutil.parser
datestr = '2012-12-25T08:52:00-05:00'
dateutil.parser.parse(datestr)
>>> datetime.datetime(2012, 12, 25, 8, 52, tzinfo=tzoffset(None, -18000)) 
Run Code Online (Sandbox Code Playgroud)