我想以一种可能的格式(%d。%m。%Y%H:%M或%d。%m。%Y%H:%M:%S或%d。%m。 %Y)到%Y-%m-%d%H:%M

目前,我正在使用以下代码:

newMessageDate = log.get('messageDate')
        try:
            newMessageDate = datetime.datetime.strptime(newMessageDate,'%d.%m.%Y %H:%M').strftime('%Y-%m-%d %H:%M')
        except ValueError:
            newMessageDate = datetime.datetime.strptime(newMessageDate,'%d.%m.%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')


如果String位于%d。%m。%Y%H:%M或%d。%m。%Y%H:%M:%S中,则效果很好,但我不确定如何添加第三个格式。我尝试将其添加为例外,但从未触发。

我是在正确的轨道上还是有更好的方法来做到这一点?

谢谢

最佳答案

您可以列出可能的格式,然后一一尝试。

date_formats = ["%d.%m.%Y %H:%M", "%d.%m.%Y %H:%M:%S", "%d.%m.%Y", "%d.%m.%Y %H:%M"]
for date_fmt in date_formats:
    try:
        newMessageDate = datetime.datetime.strptime(newMessageDate, date_fmt).strftime('%Y-%m-%d %H:%M')
    except ValueError:
        continue
    else:
        break

10-06 14:35