2017-02-06 116 views
1

我試過下面這行代碼,它會返回一個奇怪的結果。dateutil.parser.parse不會返回正確的日期時間

In [68]: 
from datetime import datetime 
from dateutil.parser import parse 
​ 
parse('2017/JAN') 

Out[68]: 
datetime.datetime(2017, 1, 6, 0, 0) 

因爲解析器奉命來解析日期時間字符串,最多一月,我們可以合理地假定輸出應該是一個月,即2017年/月/ 1的第一天。

然而,奇怪的是,輸出是2017年1月6日,其中的日期恰巧與我的Windows PC上的日期相同。

因此,我試着將日期更改爲昨天(2月/ 5日),輸出更改爲datetime(2017,1,5,0,0),即2017/1/5。

看來,解析器從它所運行的本地compter的日曆中選取一個日期,以防日期未被指定爲函數參數。

這是行爲的設計或可能是一個錯誤?如果有意,那將是一個理由?

謝謝

+0

ü可以給一個明確的你問題 –

回答

0

你應該看看dateutil包。

Thers必須是不同的格式解析:

如果妳需要更多的細節只是看到這個parse link

編輯:爲ü一個小例子,

from datetime import datetime 
datetime.utcfromtimestamp(float("1294989360")) 
+0

謝謝你的回答。 dateutil的文檔網頁沒有提到如果在傳遞給解析器的日期時間字符串中未指定日期,而只是年和月,會發生什麼情況。我試圖使用解析器作爲創建日期時間的方便方法。 – Royalblue

+0

然後我會給你一個簡單的例子 –

相關問題