Python:给定两种可能的格式,将字符串解析为时间

Python:给定两种可能的格式,将字符串解析为时间,python,Python,我有一个字符串s,它可以采用两种可能的时间格式: timeShortFmt = "%Y-%m-%d" timeLongFmt = "%Y-%m-%d %H:%M" 如何安全地解析s,而不事先知道它的格式?我相信有一种聪明的蟒蛇式方法可以做到这一点(可能不止一种)。我只能提出冗长而繁琐的解决方案。使用。它处理日期的模糊解析 fmt = time_fmt_long if " " in input_string else time_fmt_short dt = datetime.strptim

我有一个字符串
s
,它可以采用两种可能的时间格式:

timeShortFmt  = "%Y-%m-%d"
timeLongFmt   = "%Y-%m-%d %H:%M"
如何安全地解析
s
,而不事先知道它的格式?我相信有一种聪明的蟒蛇式方法可以做到这一点(可能不止一种)。我只能提出冗长而繁琐的解决方案。

使用。它处理日期的模糊解析

fmt = time_fmt_long if " " in input_string else time_fmt_short
dt = datetime.strptime(input_string, fmt)
>>> from dateutil import parser
>>> parser.parse("2010-10-10")
datetime.datetime(2010, 10, 10, 0, 0)
>>> parser.parse("2010-10-10 13:40")
datetime.datetime(2010, 10, 10, 13, 40)

伟大的如果可能的格式列表较长,您如何概括解决方案?@Dror:这取决于格式是什么以及我想在哪里使用它们<@Noufal Ibrahim建议的code>dateutil在许多情况下都是不错的选择。