使用特定的初始格式将String转换为datetime

时间:2018-10-18 16:03:41

标签: python

我用这种格式抓取了一些日期:

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'

是否有简单的方法可以转换此格式?还是需要替换字符串?

1 个答案:

答案 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')