1

我正在尝试将以下日期 (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 中的正确日期时间对象。

节日快乐!

4

2 回答 2

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)) 
于 2012-12-25T15:01:20.267 回答
0

指示与 UTC的-05:00时区偏移量,即%z解析它的正确 strptime 参数。

如果时间是 UTC,则偏移量可能会使用 来表示Z,例如2012-12-25T08:52:00Z。不知道是否%z真的会接受这个......

于 2012-12-25T14:49:02.127 回答