python3 strftime 输出因平台而异
python3 strftime output varies by platform
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'
这是预期的行为吗?为什么?
strftime
只是您正在使用的 C
库中定义的 strftime
函数的薄包装。见相关'bug'here。此行为似乎 恰恰是另一种情况。
输出之间的差异与 Python 无关,因为 Python 只会传递参数并接收输出。由于不同的平台对 C
stdlib 有不同的实现,因此在某些极端情况下您会得到不同的结果。
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'
这是预期的行为吗?为什么?
strftime
只是您正在使用的 C
库中定义的 strftime
函数的薄包装。见相关'bug'here。此行为似乎 恰恰是另一种情况。
输出之间的差异与 Python 无关,因为 Python 只会传递参数并接收输出。由于不同的平台对 C
stdlib 有不同的实现,因此在某些极端情况下您会得到不同的结果。