為替レートのタイムスタンプと鮮度

観測時刻とリクエスト時刻を区別し、staleフィールドと市場セッションのフィールドを確認して、為替アプリケーションの鮮度チェックを設計します。

観測票を保管トレイに置き、机上の時計を確認する白いイッカク。

時計は1つとは限らない

レートは、観測、公開、サーバーによる取得、ブラウザでの表示がそれぞれ異なる時刻に行われます。観測タイムスタンプを最新のリクエスト時刻に置き換えると、変わっていないレートが実際より新しく見えます。

転送やキャッシュの挙動を測る必要がある場合は、リクエスト時刻または取得時刻をアプリケーションの別フィールドとして保持してください。レートに付属するタイムスタンプを上書きしてはいけません。

Narwhal のフィールドをまとめて読む

現在レートのレコードにはtimestampとstaleがあります。レスポンスレベルのmarket_sessionはopen、weekend、interbank_closedのいずれかです。これらは別の問いに答えます。観測がいつ適用されるか、サービスがstaleと示しているか、現在のセッションコンテキストは何かです。

換算レスポンスは、換算金額とともに選択したレートのtimestampとstale状態を返します。セッションがopenであるだけでは、すべての通貨レコードが新鮮だとは言えません。

タイムゾーンを失わずに経過時間を計算する

同じ日の09:00 UTCに観測され、09:07 UTCに表示された例では、経過時間は7分です。アプリケーションの方針で許容する経過時間が最大5分なら、リクエストがたった今成功した場合でも、鮮度が重要な処理ではその観測値を使用できません。

アプリケーション方針の例(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は通常、TARGETの休業日を除く営業日の16:00 CET頃にユーロ参考レートを更新します。このスケジュールから、一晩や休日のデータの空白だけでは、データ処理の障害とは判断できないことが分かります。

Narwhalは独自のセッションと鮮度コンテキストを公開します。週末には、以前に受け入れられた観測値が元のタイムスタンプのまま利用できる場合があります。UIではその日付を保持し、新しい週末観測として書き換えないでください。

数値と一緒に文脈をキャッシュする

レート、方向、タイムスタンプ、stale状態を1つのレコードとしてキャッシュしてください。更新に失敗した場合、古いキャッシュレコードはそのまま古くなります。アプリケーションの確認を通すためにタイムスタンプをリセットしたり、staleフラグを黙って変更したりしないでください。

過去の為替レート観測値は観測日を持ち、現在レートの古さや市場セッションのフィールドは含みません。過去の日付はその系列の一部として解釈し、現在レートに適用する短い経過時間の上限で判定しないでください。詳しい意味は過去の為替レートAPIリファレンスで確認できます。

出典・参考資料

公開日: 。最終確認日: 。