Python将字符串date对象转换为date会产生valuerror



我正在尝试将字符串日期对象转换为python中的日期对象。到目前为止

 old_date = '01 April 1986' 
 new_date = datetime.strptime(old_date,'%d %M %Y')
 print new_date

但是我得到以下错误:

ValueError:时间数据'01 April 1986'不匹配格式'%d %M %Y'

猜吗?

%M解析minutes,一个数值,而不是一个月。您的日期指定月份为'April',因此使用%B来解析名为 month的:

>>> from datetime import datetime
>>> old_date = '01 April 1986' 
>>> datetime.strptime(old_date,'%d %B %Y')
datetime.datetime(1986, 4, 1, 0, 0)

strftime()strptime()行为部分:

%B
月作为区域设置的全名。
一月,二月,……,十二月(en_US);
一月,二月,……, Dezember (de_DE)

%M
分钟作为填充零的十进制数。
00, 01,…59

您可以首先猜测字符串正在使用的日期格式的类型,然后转换为相同的系统可识别的日期格式。我编写了一个简单的date_tools实用程序,您可以在[https://github.com/henin/date_tools/]

找到它。

安装:pip install date-tools

用法:

from date_tools import date_guess

from datetime import日期时间

old_date = '01 April 1986'

date_format = date_guess .guess_date_format(old_date)

new_date = datetime。strptime (old_date date_format)

打印(new_date)

最新更新