不止一个时钟
汇率可能在不同时间被观测、发布、由服务器获取并在浏览器中呈现。用最新请求时间替换观测时间戳,会让未变化的汇率看起来比实际更新。
如果需要衡量传输或缓存行为,请将请求或获取时间作为独立的应用字段保存。它不能覆盖汇率附带的时间戳。
一起读取 Narwhal 字段
当前汇率记录包含 timestamp 和 stale。响应级 market_session 为 open、weekend 或 interbank_closed。这些字段分别说明观测适用的时间、服务是否将其标记为过时,以及当前市场交易时段。
换算响应同时提供换算金额,以及所选汇率的时间戳和过时状态。市场开市本身不能证明每条货币记录都具有时效性。
在不丢失时区的情况下计算时间差
假设观测时间为某日 09:00 UTC,在同日 09:07 UTC 查看时,距观测时间已过去七分钟。若应用规定数据距观测时间不得超过五分钟,即使请求刚成功返回,也应拒绝将该观测值用于对时效性有要求的操作。
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 参考文档。
来源与参考
发布于 。最近核查于 。

