使用相同的代码、python时间和日期时间模块,时差同时正确和不正确

使用相同的代码、python时间和日期时间模块,时差同时正确和不正确,python,python-3.x,datetime,python-requests,Python,Python 3.x,Datetime,Python Requests,我正在计算api和系统时间之间的时差,代码工作正常,但显示的结果不正确 url="Some url" for sec in range(30): #30 times hitting time.sleep(1) #tim

我正在计算api和系统时间之间的时差,代码工作正常,但显示的结果不正确

url="Some url"

for sec in range(30):                                                              #30 times hitting
    time.sleep(1)                                                                  #time delay of 1 seconds, 30 hits ,2 sec so 60 second totally
    r = requests.get(url, params={}, headers = headers)                            # hitting the url after 2 seconds
    reqres = json.loads(r.text)
 time_in_api=reqres['last_updated_at_time']
    time_in_api=time.ctime(time_in_api/1000000)
    time_in_api_readable=datetime.datetime.strptime(str(time_in_api), "%a %b %d %H:%M:%S %Y")
    
    our_time=datetime.datetime.now()
    our_time = our_time.replace(microsecond=0)
    
    # calculation of time differance

    timediff=time_in_api_readable-our_time
    print(timediff,time_in_api_readable,our_time)
输出是,

0:00:02 2021-05-20 21:04:34 2021-05-20 21:04:32
0:00:00 2021-05-20 21:04:34 2021-05-20 21:04:34
0:00:01 2021-05-20 21:04:38 2021-05-20 21:04:37
0:00:00 2021-05-20 21:04:39 2021-05-20 21:04:39
0:00:01 2021-05-20 21:04:42 2021-05-20 21:04:41
-1 day, 23:59:59 2021-05-20 21:04:42 2021-05-20 21:04:43
0:00:01 2021-05-20 21:04:47 2021-05-20 21:04:46
-1 day, 23:59:59 2021-05-20 21:04:47 2021-05-20 21:04:48
0:00:01 2021-05-20 21:04:52 2021-05-20 21:04:51
-1 day, 23:59:58 2021-05-20 21:04:52 2021-05-20 21:04:54
-1 day, 23:59:55 2021-05-20 21:04:52 2021-05-20 21:04:57
-1 day, 23:59:53 2021-05-20 21:04:52 2021-05-20 21:04:59
-1 day, 23:59:50 2021-05-20 21:04:52 2021-05-20 21:05:02
-1 day, 23:59:47 2021-05-20 21:04:52 2021-05-20 21:05:05
-1 day, 23:59:44 2021-05-20 21:04:52 2021-05-20 21:05:08

这似乎是人类读取“timedelta”对象的问题。 你可以考虑“TooalSudio()”来解决你的问题。
import datetime


TimeNow = datetime.datetime.now()
TimeNow = TimeNow.replace(microsecond = 0)

TimeTenSecondsFromNow = TimeNow + datetime.timedelta(seconds = 10)


print ('TimeNow', TimeNow)
print ('TimeTenSecondsFromNow', TimeTenSecondsFromNow)


TimeDiff = TimeNow - TimeTenSecondsFromNow
print ('TimeDiff', TimeDiff)


DiffTotalSeconds = TimeDiff.total_seconds()
print ('DiffTotalSeconds', DiffTotalSeconds)
输出:

>>> TimeNow 2021-05-20 12:43:26
>>> TimeTenSecondsFromNow 2021-05-20 12:43:36
>>> TimeDiff -1 day, 23:59:50
>>> DiffTotalSeconds -10.0

似乎是一个不直观的正确答案。同一天
21:04:52-21:05:02
的结果可以表述为
-1天+23:59:50
,本质上是
-10秒
。如何将其作为一种形式从公元前0:00:01开始,时差显示不同,并且时差为-1天,23.59.58非-1day+23.59.58@kempor如何处理时差,因为我希望时差超过10秒。一天和秒格式显示86000秒为时差“时差为-1天,23.59.58不是-1天+23.59.58”。我不是在告诉你它是怎么写的,我是在告诉你怎么解释它。事实上,它不是那样写的,这就是为什么我说它是一种非直观的形式(至少在你找到它为什么是那样写的之前)。解决了我的问题