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

时间:2014-10-21 07:53:23

标签: python

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

timeShortFmt  = "%Y-%m-%d"
timeLongFmt   = "%Y-%m-%d %H:%M"

如果没有提前知道它具有哪种格式,我如何安全地解析s ?我确信这是一种聪明的pythonic方式(可能不止一个)。我只能提出冗长而繁琐的解决方案。

2 个答案:

答案 0 :(得分:1)

fmt = time_fmt_long if " " in input_string else time_fmt_short
dt = datetime.strptime(input_string, fmt)

答案 1 :(得分:1)

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

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