python - 使用相同的代码,python时间和日期时间模块,时差同时正确和错误
问题描述
我正在计算 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”对象的问题。您可以考虑使用“total_seconds()”来解决您的问题。
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
推荐阅读
- java - 谷歌 JWT 无效签名
- python - python docstring样式留下空格
- pine-script - 在 pine 脚本中显示 hline 的价格信息
- sql - 为子表中的列添加检查约束
- swift - 如何从 Swift 中的 Date() 中获取当前时间(hh:mm:ss 格式)?
- android - 如何使用下拉列表制作材料芯片
- google-apps-script - 用户可通过按钮将每分钟触发器安装到独立脚本
- html - 我的网站没有正确加载。连接到某个网络时显示 404 错误,
- rust - 专用人造丝池提交工作并异步等待完成
- c++ - uWebSockets 客户端