0

我正在编写一些 python 脚本来计算自较旧日期以来所花费的时间,但令人惊讶的是得到了否定的结果。我意识到问题可能出在time.mktime函数中。让我们得到这个代码:

import time
import datetime

before = datetime.datetime(2010, 10, 17, 0, 0, 0)
after = datetime.datetime(2010, 10, 17, 1, 0, 0)

print "%s = %f" % (before, time.mktime(before.timetuple()))
print "%s = %f" % (after, time.mktime(after.timetuple()))

在我的 Linux 32 位 Python 2.6.4 上,输出为:

2010-10-17 00:00:00 = 1287284400.000000
2010-10-17 01:00:00 = 1287284400.000000

不同时间的相同时间戳!难道我做错了什么?

4

2 回答 2

6

没有。巴西的夏令时从 2010 年 10 月 17 日开始,所以少了一小时。

于 2011-03-22T14:38:30.580 回答
1

请注意,mktime 为您提供本地时间的表示,如果适用于您的系统区域设置,则使用夏令时。这可能会导致一些奇怪的行为。

您可能更喜欢为您提供 UTC 时间的calendar.timegm 。

于 2011-03-22T14:40:27.647 回答