我正在嘗試使用Django dateutil.pareser.parse()將日期'2016:09:24 17:08:45'更改爲'2016-09-24 17 :08:45' 。但是當我使用下面的代碼:Django dateutil解析正在將日期更改爲今天的日期
the_timestamp = self.request.query_params.get('timestamp',0) # = '2016:09:24 17:08:45'
the_parsed_timestamp = dateutil.parser.parse(the_timestamp)
我得到結果the_parsed_timestamp ='2016-10-16 17:08:45'。 2016-10-16是今天的日期。
爲什麼dateutil.parser.parse用今天的日期替換日期(並且只剩下時間部分)?
你知道,它總是在格式爲 「%Y:%M:%d%H:%M:S」?如果是這樣,不要使用'dateutil.parser',使用'datetime.strptime'。也就是說,這看起來像一個bug,你應該在[dateutil的問題跟蹤器](https://github.com/dateutil/dateutil/issues)上報告它 - 即使該格式不被支持,它也不應該默默無聞。 – Paul
順便說一下,我懷疑現在發生的事情是,它將'2016:09:24'解釋爲'%H:%M:%S',以及'dateutil'的工作方式,如果你給它2個HMS三元組一排,第二個會覆蓋第一個。如果你自己將「2016:09:24」傳遞給解析器,它會給出一個錯誤,因爲「2016」太大了一個小時,所以你實際上只是通過了這個「17:08:45」 – Paul
哦好吧,所以對這種格式解析不夠聰明?我的問題是我不確定日期時間格式是什麼格式,所以我希望我可以使用像dateutil parse這樣的聰明工具來爲我排序。有沒有其他的方法? –