汇率时间戳和数据时效性

区分观测时间和请求时间,读取 stale 字段和市场交易时段字段,并为汇率应用设计时效性检查。

一头白色独角鲸正在档案托盘旁查看桌面时钟和观测单。

不止一个时钟

汇率可能在不同时间被观测、发布、由服务器获取并在浏览器中呈现。用最新请求时间替换观测时间戳,会让未变化的汇率看起来比实际更新。

如果需要衡量传输或缓存行为,请将请求或获取时间作为独立的应用字段保存。它不能覆盖汇率附带的时间戳。

一起读取 Narwhal 字段

当前汇率记录包含 timestamp 和 stale。响应级 market_session 为 open、weekend 或 interbank_closed。这些字段分别说明观测适用的时间、服务是否将其标记为过时,以及当前市场交易时段。

换算响应同时提供换算金额,以及所选汇率的时间戳和过时状态。市场开市本身不能证明每条货币记录都具有时效性。

在不丢失时区的情况下计算时间差

假设观测时间为某日 09:00 UTC,在同日 09:07 UTC 查看时,距观测时间已过去七分钟。若应用规定数据距观测时间不得超过五分钟,即使请求刚成功返回,也应拒绝将该观测值用于对时效性有要求的操作。

应用策略示例,不是 Narwhal 的 stale 阈值
Observation:           2026-09-24T09:00:00Z
Application time:      2026-09-24T09:07:00Z
Age:                   420 seconds
Application limit:     300 seconds
Within age limit:      false

明确接受规则

使用能够识别时区的日期解析器和可靠的应用时钟。无效或意外指向未来的时间戳应视为验证问题,不能据此认为汇率格外及时。

  • 读取并保留 API 的 stale 标志。
  • 将距观测时间的时长与应用文档规定的上限进行比较。
  • 应用该操作所需的市场交易时段限制。
  • 选择回退方式:清楚标记并显示带日期的观测值,或在可接受数据到达前禁用操作。

遵循发布时间表

每日参考序列和当前指示性数据源的时间表不同。ECB 通常在工作日中欧时间 16:00 左右更新欧元参考汇率,但 TARGET 关闭日除外。这个时间表说明,隔夜或假日间隔本身并不证明数据管道失败。

Narwhal 会提供自身的市场交易时段和数据时效性信息。周末时,先前已接受的观测值仍可能以原始时间戳继续提供。界面应保留该日期,不应将其重新标记为新的周末观测值。

将上下文与数值一起缓存

将汇率、方向、时间戳和 stale 状态作为一条记录缓存。如果刷新失败,较旧的缓存记录会继续变旧。不要重置其时间戳,也不要悄悄改变 stale 标志来让它通过应用检查。

历史汇率观测值使用观测日期,不包含当前汇率的过期状态或市场时段字段。历史日期应作为该序列的一部分来理解,而不是按今天当前汇率的短期时效限制来评判。有关这些含义,请参阅历史汇率 API 参考文档。

来源与参考

发布于 。最近核查于 。