2016-08-12 16 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には関係しません。異なるプラットフォームにはC stdlibの実装が異なるため、いくつかのエッジケースでは異なる結果になります。

関連する問題