Binance API返回的K线时间数值含义及可读时间转换方法问询
时间戳含义说明
你获取到的1630281600000、1630285199999这类数值是毫秒级Unix时间戳,计算规则为UTC时区1970年1月1日00:00:00到对应时间点的总毫秒数,对应你提到的日K线场景:
- 开盘时间
1630281600000:对应UTC时区2021年8月30日00:00:00,是该根1天周期K线的统计起始点 - 收盘时间
1630285199999:对应UTC时区2021年8月30日23:59:59.999,是该根K线的统计结束点,和下一根日K线的开盘时间无缝衔接,不存在时间重叠或缺口
转换为可读日期时间格式的方法
使用Python内置datetime库即可快速完成转换,无需依赖第三方工具,转换时需要先把毫秒级时间戳除以1000转为秒级Unix时间戳,示例代码如下:
from datetime import datetime # 示例输入:Binance接口返回的开盘、收盘毫秒时间戳 kline_open_ts = 1630281600000 kline_close_ts = 1630285199999 # 转换为UTC时区时间元组,输出格式和你需要的(2021,8,30,0,0)完全一致 open_utc = datetime.utcfromtimestamp(kline_open_ts / 1000) close_utc = datetime.utcfromtimestamp(kline_close_ts / 1000) print(open_utc.timetuple()[:5]) # 输出结果:(2021, 8, 30, 0, 0) print(close_utc.timetuple()[:5]) # 输出结果:(2021, 8, 30, 23, 59) # 如果需要转换为东八区(北京时间)格式,可配合pytz库实现 # 先安装pytz:pip install pytz import pytz cn_tz = pytz.timezone("Asia/Shanghai") open_cn = datetime.fromtimestamp(kline_open_ts / 1000, cn_tz) print(open_cn.timetuple()[:5]) # 输出结果:(2021, 8, 30, 8, 0)
内容的提问来源于stack exchange,提问作者chronovirus
相关产品推荐
相关产品推荐

