CCXT库kucoin.fetchOrderBook()返回datetime与实际时间差2小时求助
关于CCXT库KuCoin fetchOrderBook返回时间差2小时的问题
问题描述
我正在使用CCXT库中的kucoin.fetchOrderBook()函数获取买卖盘(bids和asks)数据,但返回的datetime字段比实际时间早2小时,该函数仅需传入交易对和limit参数,相关返回数据如下:
kucoin.fetchOrderBook(COIN1) {'symbol': 'BNB/USDT:USDT', 'bids': [[243.82, 4589.0], [243.81, 1054.0], [243.8, 1517.0], [243.79, 750.0], [243.78, 104.0], [243.77, 108.0], [243.76, 1004.0], [243.75, 530.0], [243.74, 486.0], [243.73, 2633.0], [243.72, 506.0], [243.7, 764.0], [243.69, 650.0], [243.68, 2155.0], [243.67, 176.0], [243.66, 756.0], [243.65, 251.0], [243.64, 241.0], [243.63, 2700.0], [243.61, 72.0]], 'asks': [[243.83, 4832.0], [243.84, 549.0], [243.85, 2604.0], [243.86, 1418.0], [243.87, 958.0], [243.88, 2565.0], [243.89, 750.0], [243.9, 150.0], [243.92, 650.0], [243.94, 4244.0], [243.95, 1441.0], [243.96, 854.0], [243.97, 1951.0], [243.98, 19613.0], [244.0, 650.0], [244.02, 547.0], [244.04, 16524.0], [244.06, 571.0], [244.07, 5540.0], [244.08, 4164.0]], 'timestamp': 1691347099077, 'datetime': '2023-08-06T18:38:19.077Z', 'nonce': 1684641322926}
原因分析与解决方法
核心原因:时区差异
返回的datetime字段末尾的Z代表这是UTC标准时间,如果你的本地时区是UTC+2(比如中欧夏令时、南非标准时间等),直接用本地时间对比UTC时间就会出现2小时的时差,这是正常现象。验证方式
可以通过返回的timestamp(毫秒级时间戳)验证:将1691347099077除以1000转换为秒级时间戳,转换后对应的UTC时间就是返回的2023-08-06T18:38:19.077Z,转换为UTC+2时区的时间正好是你感知的“实际时间”。转换为本地时区的方法
如果需要将返回的时间转换为本地时区,可使用Python的datetime模块处理:
方法一:基于datetime字段转换from datetime import datetime, timezone # 解析UTC时间 utc_datetime = datetime.fromisoformat('2023-08-06T18:38:19.077Z'.replace('Z', '+00:00')) # 转换为系统本地时区 local_datetime = utc_datetime.astimezone() print(local_datetime)方法二:基于
timestamp字段转换from datetime import datetime, timezone # 毫秒级时间戳转本地时间 local_datetime = datetime.fromtimestamp(1691347099077 / 1000, timezone.utc).astimezone() print(local_datetime)
内容的提问来源于stack exchange,提问作者ShaolinRecordz
相关产品推荐
相关产品推荐

