在Windows XP上从不同的Python版本计算时获得两个不同的修改时间。
的python2.4
C:\Copy of elisp>c:\python24\python
Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.getmtime("auto-complete-emacs-lisp.el")
1251684178
>>> ^Z
python2.6的
C:\Copy of elisp>C:\Python26\python
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.getmtime("auto-complete-emacs-lisp.el")
1251687778.0
>>>
Python2.6和Python2.4报告的差异为3600秒。
这种奇怪行为的原因是什么?
答案 0 :(得分:2)
相差3600秒......
这应该是踢球者。这是一个时区问题,纯粹而简单。
现在你要做的就是找出为什么2.4和2.6使用不同的时区信息: - )
答案 1 :(得分:2)
这是Microsoft实施C标准库的一个错误。 Python 2.4曾经使用stdlib fstat
调用来获取文件信息,因此可能会在使用DST的语言环境中耗尽一小时。
在Python 2.5及更高版本中,os.stat
调用直接的Win32-only API以在Windows上运行时获取文件信息,从而产生正确的输出。有关详情,请参阅this thread。