该
python-dateutil包可以解析不仅RFC 3339日期时间字符串像在的问题,还包括其他ISO 8601的日期和时间字符串不符合RFC 3339(如那些没有UTC偏移,或那些代表仅一个日期)。
>>> import dateutil.parser>>> dateutil.parser.isoparse('2008-09-03T20:56:35.450686Z') # RFC 3339 formatdatetime.datetime(2008, 9, 3, 20, 56, 35, 450686, tzinfo=tzutc())>>> dateutil.parser.isoparse('2008-09-03T20:56:35.450686') # ISO 8601 extended formatdatetime.datetime(2008, 9, 3, 20, 56, 35, 450686)>>> dateutil.parser.isoparse('20080903T205635.450686') # ISO 8601 basic formatdatetime.datetime(2008, 9, 3, 20, 56, 35, 450686)>>> dateutil.parser.isoparse('20080903') # ISO 8601 basic format, date onlydatetime.datetime(2008, 9, 3, 0, 0)请注意,这
dateutil.parser.isoparse可能比更严格的方法更严格
dateutil.parser.parse,但是它们两者都是相当宽容的,并且会尝试解释你传入的字符串。如果要消除任何误读的可能性,则需要使用比这两种方法都严格的方法功能。
Pypi名称是
python-dateutil,不是
dateutil(感谢
pre3monk3y):
pip install python-dateutil
如果你使用的是Python 3.7,请查看有关的答案
datetime.datetime.fromisoformat。



