2

我在网上找不到任何东西,可能有一些愚蠢的简单答案,但是对于 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 秒?如果我将“秒=120”更改为“分钟=1”,我会得到“59”,而不是“60”。为什么?

4

1 回答 1

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

所以有 119 秒和 999976 微秒。因为您datetime.utcnow()以一点(24 微秒)的间隔进行了两次单独的调用。

于 2012-10-18T01:22:03.823 回答