我用这种格式抓取了一些日期:
review_date = ['9 August 2018 ', '7 August 2018 ']
我想将每个字符串转换为日期时间格式,例如'%d-%m-%Y'
for d in review_date:
d = datetime.datetime.strptime(d, '%d-%m-%Y')
但是出现以下错误,因为它不是日期时间想要的初始格式
ValueError:时间数据'2018年8月9日'与格式不匹配 '%d-%m-%Y'
是否有简单的方法可以转换此格式?还是需要替换字符串?
答案 0 :(得分:2)
strptime
将字符串转换为datetime()
对象。您传递给它的格式字符串是用来指定该字符串已经存在的格式:
d = datetime.datetime.strptime(d, '%d %B %Y') # %B is the full month name
稍后您可以使用strftime()
从该对象生成所需的任何字符串-然后可以传递所需的格式:
s = d.strftime('%d-%m-%Y')
您可以将呼叫链接到一行:
result = datetime.datetime.strptime(d, '%d %B %Y').strftime('%d-%m-%Y')