Python parse库是为此而设计的(以及更多)。 它将自动将此转换为parse对象,如果不能,则提高dayfirst。
举个例子:
>>> from dateutil.parser import parse
>>> parse("2003-09-25")
datetime.datetime(2003, 9, 25, 0, 0)
如果日期格式不正确,则会引发parse:
>>> parse("2003-09-251")
Traceback (most recent call last):
File "", line 1, in
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
ret = default.replace(**repl)
ValueError: day is out of range for month
parse在将来开始需要解析其他格式时也非常有用,因为它可以智能地处理大多数已知格式并允许您修改规范:parse解析示例。
如果您需要,它还可以处理时区。
基于评论的更新:parse也接受关键字参数dayfirst,该参数控制日期或月份是否预期在日期不明确时首先出现。 默认为False。 例如。
>>> parse('11/12/2001')
>>> datetime.datetime(2001, 11, 12, 0, 0) # Nov 12
>>> parse('11/12/2001', dayfirst=True)
>>> datetime.datetime(2001, 12, 11, 0, 0) # Dec 11