2016-08-12 31 views
3

Python3 strftime產生因平臺而異的結果。例如:python3 strftime輸出因平臺而異

OS X 10.10.5

>>> sys.version 
'3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]' 
>>> datetime.datetime(1, 1, 1, 0, 0).strftime('%Y/%m/%d') 
'0001/01/01' 

的Debian 8.5

>>> sys.version 
'3.5.2 (default, Aug 12 2016, 16:05:15) \n[GCC 4.9.2]' 
>>> datetime.datetime(1, 1, 1, 0, 0).strftime('%Y/%m/%d') 
'1/01/01' 

這是預期的行爲?爲什麼?

回答

2

strftime只是一個圍繞着C庫中定義的strftime函數的薄包裝。查看相關的「錯誤」here。這種行爲似乎是另一種情況。

輸出之間的差異與Python無關,因爲Python只會傳遞參數並接收輸出。由於不同的平臺對stdlib有不同的實現,所以在某些邊緣情況下會得到不同的結果。