Python 为什么我的timedelta数学不可用?
我在网上找不到任何东西,可能有一些愚蠢的简单答案,但作为python新手,我不明白:Python 为什么我的timedelta数学不可用?,python,datetime,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
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'
为什么它总是比我指定的时间差打印1秒?如果我把“秒=120”改为“分钟=1”,我得到的是“59”,而不是“60”。为什么?
>>> print now_utc - past
0:01:59.999976
因此有119秒和999976微秒。因为您以24微秒的间隔分别调用了两次datetime.utcnow()。您调用了两次datetime.utcnow()。这两个电话相隔1秒似乎很愚蠢,但为什么不尝试一个电话呢?就是这样。我应该只做一次。我觉得自己很愚蠢。如果允许的话,我会在9分钟内接受你的回答。