我正在尝试将以下日期(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')
但是这会出现预期的“ ValueError:未转换的数据仍然”。我只想弄清楚日期的最后部分用于什么,以便我可以在python中将该字符串转换为正确的日期时间对象。
节日快乐!
答案 0 :(得分: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))
答案 1 :(得分:0)
-05:00
表示与UTC的时区偏移,即%z
将是解析它的正确strptime参数。
如果时间是UTC,则可以使用Z
指示偏移,例如2012-12-25T08:52:00Z
。不确定%z
是否真的会接受这个......