My time.time() is bigger than server time
我是编程和学习python3的新手。
最近我正在尝试使用binance的api制作加密货币交易系统。
这是api文档。
关于文档中时间戳的逻辑和解释如下:
Timestamp, to be sent which should be the millisecond timestamp of when the request was created and sent.
if (timestamp < serverTime && (serverTime - timestamp) <= recvWindow) { // process request } else { // reject request }
根据这个逻辑,我发送请求的时间应该少于服务器上的时间。 问题是我没有通过这个逻辑。
当我使用此代码调用time.time()和服务器时间时,
1 2 3 4 5 6 7 8 9 10 11 12 13 | import requests import simplejson as json import time base_url ="https://api.binance.com" servertime_endpoint="/api/v1/time" url = base_url + servertime_endpoint t = time.time()*1000 r = requests.get(url) result = json.loads(r.content) print(int(t)-result["serverTime"]) |
time.time()大于服务器时间,以便从最后一个句子返回正值。 我该怎么办?
这很可能是由于您使用分辨率低于服务器运行速度的时钟运行的操作系统。在Linux或Mac OS上运行时,Python使用
您可以通过编程忙循环并等到时间变化来检查
如果您运行的分辨率为~0.002秒(1毫秒),而服务器报告的分辨率为~0.000001秒(1微秒),那么即使您的时钟完全同步且网络为零延迟,你仍然希望你的时间超过服务器时间50%的呼叫只是由于量化噪音。例如,如果服务器报告的时间为12345.678501(微秒分辨率),则您的计算机将报告12345.679(毫秒分辨率)的时间,并且前方似乎是499微秒。
一些快速解决方案是: