如何解析ISO 8601格式的日期?我需要解析RFC 3339字符串,如"2008-09-03T20:56:35.450686Z"變成Python的datetime類型。我發現strptime在Python標準庫中,但是不太方便。做這件事最好的方法是什么?
3 回答
吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
這個Python-dateutil包不僅可以像問題中的那樣解析rfc 3339日期時間字符串,還可以解析其他字符串。ISO 8601不符合RFC 3339的日期和時間字符串(例如沒有UTC偏移量的字符串或僅表示日期的字符串)。
>>>?import?dateutil.parser>>>?dateutil.parser.parse('2008-09-03T20:56:35.450686Z')?#?RFC?3339?formatdatetime.datetime
(2008,?9,?3,?20,?56,?35,?450686,?tzinfo=tzutc())>>>?dateutil.parser.parse('2008-09-03T20:56:35.450686')
?#?ISO?8601?extended?formatdatetime.datetime(2008,?9,?3,?20,?56,?35,?450686)>>>?dateutil.parser.parse('20080903T205635.450686')
??#?ISO?8601?basic?formatdatetime.datetime(2008,?9,?3,?20,?56,?35,?450686)>>>?dateutil.parser.parse('20080903')?
??#?ISO?8601?basic?format,?date?onlydatetime.datetime(2008,?9,?3,?0,?0)請注意,dateutil.parser故意作嘔:它試圖猜測格式,并在模棱兩可的情況下做出不可避免的假設(只能手工定制)。因此,只有當您需要解析未知格式的輸入,并且可以容忍偶爾的誤讀時,才可以使用它。
Pypi的名字是python-dateutil,不是dateutil:
pip?install?python-dateutil
添加回答
舉報
0/150
提交
取消
