tracepu
简体中文

成交以后

币安交易记录的时间是 UTC 吗?怎么换算成北京时间

导出文件按 UTC+0 记时间,加 8 小时才是北京时间,日期可能差一天。

示意图:同一时刻的两张卡片,左边 UTC 写着 10 月 9 日 23:30,右边 UTC+8 写着 10 月 10 日 07:30,中间标着加 8 小时
同一个时刻,按 UTC 和按 UTC+8 读出来钟点差 8 小时,日期可能差一天。

币安导出的现货成交记录,时间按 UTC+0 写,不是北京时间。币安帮助中心在下载交易历史的说明里有一句注意事项:「历史记录是以UTC+0时区显示,并包含零点前的信息。」你在北京、新加坡这类全年 UTC+8 的地方,把文件里的钟点加 8 小时,就是当地时间。

加完以后,日期可能跟着变。文件里 16:00 及之后的成交,加 8 小时都落到第二天。你记得的下单时间和文件里差了几个小时,甚至日期差一天,按这个时差对一遍,不用急着怀疑记录出了错。

举个例子:假设你卖出了一笔 AAA/USDT,导出文件里这一行的时间是 2026-10-09 23:30。加 8 小时,UTC+8 的时间是 10 月 10 日 07:30。你记得的是「10 号早上卖的」,文件写的却是 9 号;在文件里按「10 月 10 日」去筛,找不到这一行。

币安导出的成交记录是什么时区

UTC+0。出处是币安帮助中心《如何下载现货交易历史记录报告》,这句话写在网页端步骤后面的注意事项里。按这篇说明,网页端的入口是【个人资料】→【订单】-【现货订单】→【历史成交】-【导出】,日期在日历栏里调。

后半句「并包含零点前的信息」,帮助页没有再展开;日历栏里选的日期按哪个时区的零点切,也没有另外说明。选的时候把日期区间前后各放宽一天:比如要找当地时间 10 月 10 日的成交,就选 10 月 9 日到 11 日。文件下来以后,把时间换成当地时间,再筛出目标日期的成交。最早和最晚两行只代表首尾两笔成交的时间;中间没有交易的时段不会有记录,不能靠这两行反推出导出区间的边界。

打开文件时看一眼时间那一列的表头,表头自己标了时区,就按表头读。导出份数这类操作上的限制,写在币安现货交易记录怎么导出里。

订单页面上的「委托时间」是哪个时区?

币安帮助页没写明,按下面三步自己核。帮助中心《如何查看我的现货交易活动》给历史委托列了一份字段清单,第一项是「委托时间」,后面是交易对、交易类型、交易方向等,没有标时区。

币安帮助中心历史委托字段清单截图,第一项是委托时间,其后是交易对、交易类型、交易方向等
币安帮助中心的历史委托字段清单,排在第一项的是「委托时间」,清单里没有注明时区。2026.10

核对网页或 App 历史成交页面的显示时区,可以这样做:

  1. 在页面的历史成交里挑一笔,记下订单编号、成交编号(若有)和完整的日期、时间。
  2. 到导出文件里找同一笔成交:先对成交编号,再对订单编号、交易对、方向、成交价和成交数量。同一订单可能有多笔成交;只有价格、数量相同而编号无法确认时,先别认定是同一笔。
  3. 把两处的日期和钟点一起相减,不要只减小时数。若页面的 10 月 10 日 07:30 对应文件的 10 月 9 日 23:30,差值是 +8 小时。再选一笔成交复核;一致时,可据此判断这段记录按 UTC+8 显示。

时区偏移也可能带分钟,例如 UTC+5:30 或 UTC+5:45,不能看到分钟不同就认定记录对错了。若几笔记录的差值不一致,先查是不是混比了委托时间与成交时间,或匹配到了另一笔成交。委托时间是下单的时刻,成交时间是撮合的时刻;限价单挂了一阵才成交,两个时刻本来就不同。

一张订单拆成几笔成交时,各笔的时间可能不同,逐条对;均价的算法见多条成交怎么算均价。

币安系统用什么记时间,公开的现货接口文档里看得到。通用说明写着,返回数据里所有时间和时间戳字段默认以毫秒为单位;订单和成交的时间字段示例值都是毫秒时间戳,交易规则接口的返回示例里 timezone 一项的值是 UTC。毫秒时间戳通行的定义是从 1970 年 1 月 1 日 UTC 零点起经过的毫秒数,本身不带时区。前面例子里的那个时刻写成时间戳是 1791588600000,按 UTC 读是 10 月 9 日 23:30,按 UTC+8 读是 10 月 10 日 07:30,用任何一个时间戳换算工具都能复算。本站的现货下单规则查询读的就是这个公开的交易规则接口。

日 K 线的「一天」从几点算起

按币安现货接口文档,K 线默认按 UTC 划分:K 线接口有一个 timeZone 参数,默认值是 0(UTC)。照这个默认值,一根日线从 UTC 00:00 开始,对 UTC+8 的人来说是早上 8 点到第二天早上 8 点。

拿日线的最高价、最低价去核对自己某一笔成交价之前,要确认这笔成交落在哪一根日线里。回到开头的例子:按默认的 UTC 划分,UTC 10 月 9 日 23:30 的那笔成交属于 10 月 9 日这根日线,尽管当地已经是 10 号早上。拿它去和 10 月 10 日那根日线比,成交价落在最高最低范围之外也不奇怪,那是拿错了日线。

文档还写了两条:传了 timeZone,K 线周期就改按那个时区解释,可接受的范围是 -12:00 到 +14:00;起止时间参数始终按 UTC 解释。网页和 App 的 K 线图按哪个时区画,上面引的两篇帮助中心说明没有写。核对图表时,要找这根日线的开始时间及其时区说明。若界面只显示日期或价格、没有说明日线的起点,就暂时不能用它确认成交属于哪一天。接口文档提供的是 K 线开始、结束时间;用接口数据对账时,先确认交易对、日线周期和 timeZone,再把成交时间与该根日线的起止时间比较。

24 小时涨跌不等于「今天涨了多少」

接口文档给 24hr ticker 的定义是「24 hour rolling window price change statistics」,一个滚动的 24 小时窗口:从此刻往回数 24 小时,窗口跟着时间往前挪,不按哪个时区的自然日切。行情页上带「24h」字样的涨跌、最高、最低如果取的是这类数据,它和「今天这根日线涨了多少」就是两个数,对不上很正常。文档里另有一组按交易日统计的数据(Trading Day Ticker),它的 timeZone 默认值同样是 0(UTC)。

四处时间各按什么划分,依据是哪份说明
看的是哪一处时间按什么算依据自己怎么确认
导出的现货交易历史文件UTC+0帮助中心《如何下载现货交易历史记录报告》确认时间列表头,换算后按目标日期筛选
网页、App 订单页面上的时间帮助页没写明帮助中心字段清单只列了「委托时间」同一笔成交在页面和导出文件里各找一次,比完整日期和钟点
日 K 线的一天接口默认 UTC,可指定时区;帮助页没说明网页图表时区现货接口文档 K 线接口的 timeZone 参数确认日线的起止时间及其时区
24 小时涨跌滚动 24 小时窗口,不按自然日现货接口文档 24hr ticker没有日界线,不涉及时区

在表格软件里把 UTC 换成北京时间

  1. 把导出的原始文件另存一份,只改副本。原始文件原样留着,日后对账、求助都用得上。
  2. 在时间列旁边插入一列,列名写成「时间(UTC+8)」。原来那一列的列名没带时区的话,在副本里补成「时间(UTC)」。
  3. 新列填公式:原时间加 8/24。假设原时间在 A2 单元格,写 =A2+8/24,向下填充。Excel、WPS 这类表格软件里,日期时间的 1 代表一天,8/24 就是 8 小时。
  4. 把新列的单元格格式设成同时显示日期和时间,否则可能只看到一个带小数的数字。

公式报错,或者新列算不出东西,一个可能的原因是表格软件把原来的时间当成了文本。判断办法:把原时间那一格的格式改成数值,真正的时间会变成一个带小数的数字,文本则没有变化。文本要转成日期时间以后才能套公式,例如用 Excel 的「分列」功能或日期函数。

换算完按当地日期筛选,开头例子里的那一行就出现在 10 月 10 日下面了。

有夏令时的地方,偏移量一年变两次

UTC 不实行夏令时,导出文件里的时间不会因为换季而变,变的是当地时间相对 UTC 的偏移。北京、新加坡全年 UTC+8,一个公式用到底。伦敦冬季是 UTC+0、夏季是 UTC+1;纽约冬季 UTC-5、夏季 UTC-4。

拿纽约来说,文件里某一行写 12:00:冬令时期间当地是 07:00,夏令时期间是 08:00。一份文件跨过了换时的那一天,就不能整列套同一个公式,要以换时的时刻为界分成两段,各用各的偏移。偏移是负数时公式改成减,例如 =A2-5/24。换时的具体日期每年不同,查当地当年的安排。

发给客服或自己留档,时间后面写上时区

一个不带时区的「23:30」,看的人没法判断是文件里的 UTC,还是你当地的时间。向客服描述一笔订单,或者自己记账留档,在时间后面把时区写出来,例如「2026-10-09 23:30(UTC)」或「2026-10-10 07:30(UTC+8)」。两种写法指的是同一个时刻,写哪种都行。同时附上订单编号,编号不受时区影响。

截图也一样。页面截图里的钟点按什么时区,用前面那次核对的结果,在截图旁边注明。发出去之前哪些信息该遮住,见订单截图怎么留证和打码。

来源:币安帮助中心《如何下载现货交易历史记录报告》《如何查看我的现货交易活动》、币安现货接口文档 rest-api.md(英文),链接见正文,2026 年 10 月查阅。