将以句点分隔的日期转换为日期时间

时间:2019-10-03 18:06:06

标签: python-3.x loops date datetime text

我有一个日期样本列表,该列表是从较大的数据样本中获取的。某些日期的格式多种多样,例如01.11.1812.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'

如何更改代码以获得所需的输出?

1 个答案:

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