Python 2.7.8:在Windows和Linux上fromtimestamp的不同取值

3

Python 2.7.8版本,我调用:

import datetime
print datetime.datetime.fromtimestamp(10)

但是根据操作系统的不同,结果也会有所不同:

  • 1970-01-01 01:00:10 - Linux
  • 1970-01-01 00:00:10 - Windows

因此,会出现一个小时的偏移。这是已知的问题吗?有没有办法统一返回值,以便在不同的操作系统上结果相同?


如果你只需要可比较的时间戳,time.time() 将给出自纪元以来经过的秒数。有关详细信息,请参阅此问题 - maxy
2个回答

2

很可能这两个操作系统的时区设置不同。

Python标准库没有提供时区的实现(如在Python的tzinfo文档中所述)。无论如何,您应该使用第三方(纯Python)pytz模块,就像以下代码一样。

from datetime import datetime
from pytz import timezone

tz = timezone('America/St_Johns')
datetime.fromtimestamp(10, tz)

1
与原帖作者一样,我在使用Python 3.5时遇到了同样的问题,无论是在Ubuntu还是Windows 10中都设置为伦敦时区。 - reupen

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接