我有一个日期样本列表,该列表是从较大的数据样本中获取的。某些日期的格式多种多样,例如01.11.18
与12.23.1983
。我的目标是将这些日期转换成datetime
格式
dates = ['01.11.18', '2.2.17', '02.02.18', '12.1.16', '12.23.1943', '12.23.19']
我想要的输出是datetime
格式。
为此,我尝试了以下
from datetime import datetime
type_datetime = []
for d in dates:
datetime_object = datetime.strptime(d, '%m/%d/%Y')
type_datetime.append(datetime_object)
但是我得到一个错误
ValueError: time data '01.11.18' does not match format '%m/%d/%Y'
如何更改代码以获得所需的输出?
答案 0 :(得分:1)
Strptime在this formatting table之后。
好吧,由于您有多种格式,因此一种解决方案是列出可能的日期格式,然后一一尝试:
type_datetime = []
formats = ("%m.%d.%y", "%m.%d.%Y")
for d in dates:
datetime_object = None
for f in formats:
try:
datetime_object = datetime.strptime(d, f)
break
except:
continue
type_datetime.append(datetime_object)