为什么我的timedelta数学关闭?

时间:2012-10-18 01:17:13

标签: python datetime

我在网上找不到任何东西,可能有一些愚蠢的简单答案,但是对python不熟悉我不明白:

import pytz
from datetime import datetime, timedelta

now_utc = pytz.utc.localize(datetime.utcnow())
past = pytz.utc.localize(datetime.utcnow() - timedelta(seconds=120))
delta = (now_utc-past).seconds
print delta # prints '119', not '120'

为什么它总是比我指定的timedelta打印少1秒?如果我将“seconds = 120”更改为“minutes = 1”,我会得到'59',而不是'60'。为什么呢?

1 个答案:

答案 0 :(得分:8)

>>> print now_utc - past
0:01:59.999976

所以有119秒和999976微秒。因为你做了两个单独的datetime.utcnow()调用,间隔时间很短(24微秒)。