我正在尝试将字符串日期对象转换为python中的日期对象。 到目前为止我这样做了
old_date = '01 April 1986'
new_date = datetime.strptime(old_date,'%d %M %Y')
print new_date
但我收到以下错误。
ValueError:时间数据'1986年4月''与格式'%d%M%Y'
不匹配
有什么猜测吗?
答案 0 :(得分:4)
%M
解析分钟,一个数值,而不是一个月。您的日期将月份指定为'April'
,因此请使用%B
来解析名为的月份:
>>> from datetime import datetime
>>> old_date = '01 April 1986'
>>> datetime.strptime(old_date,'%d %B %Y')
datetime.datetime(1986, 4, 1, 0, 0)
来自strftime()
and strptime()
Behavior section:
%B
月份为区域设置的全名。
1月,2月,...,12月(en_US);
Januar,Februar,...,Dezember(de_DE)
%M
分钟为零填充十进制数。
00,01,...,59
答案 1 :(得分:0)
您可以首先猜测字符串使用的日期格式的类型,然后再转换为系统识别的相同日期格式。 我编写了一个简单的date_tools实用程序,您可以在[https://github.com/henin/date_tools/]
中找到从date_tools导入date_guesser
从日期时间导入日期时间
old_date ='1986年4月1日'
date_format = date_guesser.guess_date_format(旧日期)
new_date = datetime.strptime(old_date,date_format)
打印(新日期)