将日期和时间从String格式转换为Python datetime对象:ValueError:time data'... p.m。'与格式'...%p'不匹配

时间:2015-05-11 07:38:09

标签: python datetime strptime

我有以下String格式的日期和时间:

  

dateTime = '21 -03-2015 12:20 p.m。'

我想将其转换为Python datetime对象。我正在做类似下面的事情:

dateTimeObj = datetime.datetime.strptime(dateTime, '%d-%m-%Y %I:%M %p')

但我一直收到以下错误:

ValueError: time data '21-03-2015 12:20 p.m.' does not match format '%d-%m-%Y %I:%M %p'

似乎没有得到我做错的事。任何解决方案都将不胜感激。

2 个答案:

答案 0 :(得分:2)

问题在于:p.m.,与%p不匹配。

如果您选中https://docs.python.org/2/library/datetime.html,则会看到唯​​一可接受的值为:am, pm, AM, PM

因此,要解决此问题,您必须将输入字符串更改为使用pm而不使用句点。

答案 1 :(得分:1)

根据文档,%p仅支持AMPMampm格式a.m.,{{1} }等不支持格式。现在问题在于您正在尝试的日期格式,如果您无法更改日期格式,则可以使用:

a m