障害対応
米国株相場のタイムスタンプ・夏時間・取引時間帯の処理
米国株相場の時刻を正しく扱う方法:UTC での保存、America/New_York タイムゾーンによる夏時間(DST)自動変換、日足日付の帰属処理。
更新日時:
保守運営:AllTick 公式エンジニアリングチーム
対象読者:アプリケーションで米国株データの時刻変換や日足集計を行う開発者
要約 · 30秒開発サマリー
米国株の取引時間は米国東部時間(America/New_York)基準であり、毎年夏時間(EDT)と冬時間(EST)の切り替えによって日本時間や中国標準時での開始時刻が1時間変動します。API から受け取ったタイムスタンプはすべて UTC として保存し、表示や取引日判定の際には固定オフセットではなく America/New_York タイムゾーンを使用して変換するのが鉄則です。
01
まずタイムスタンプの単位(秒/ミリ秒)を確認する
相場 API のタイムスタンプは Unix 秒(10桁)またはミリ秒(13桁)が一般的です。AllTick の約定時刻 tick_time はミリ秒タイムスタンプです。単位を取り違えると日付が1970年や遠い未来にずれてしまいます。
pythonpython
from datetime import datetime, timezonefrom zoneinfo import ZoneInfodef parse_ts(value: str | int) -> datetime: ts = int(value) if ts > 10**12: ts = ts / 1000 return datetime.fromtimestamp(ts, tz=timezone.utc)utc = parse_ts("1760103000000")print(utc.isoformat())print(utc.astimezone(ZoneInfo("America/New_York")).isoformat())print(utc.astimezone(ZoneInfo("Asia/Tokyo")).isoformat())02
夏時間・冬時間における取引時間帯の対応表
| セッション(米東部時間) | 夏時間 EDT(日本時間 JST / 中国 CST) | 冬時間 EST(日本時間 JST / 中国 CST) |
|---|---|---|
プレマーケット 04:00 - 09:30 | 17:00 - 22:30 JST(16:00 - 21:30 CST) | 18:00 - 23:30 JST(17:00 - 22:30 CST) |
立会時間(通常)09:30 - 16:00 | 22:30 - 翌05:00 JST(21:30 - 翌04:00 CST) | 23:30 - 翌06:00 JST(22:30 - 翌05:00 CST) |
アフターマーケット 16:00 - 20:00 | 翌05:00 - 09:00 JST(翌04:00 - 08:00 CST) | 翌06:00 - 10:00 JST(翌05:00 - 09:00 CST) |
03
日足ローソク足の日付帰属
米国株の通常立会時間はアジア時間の深夜0時をまたぎます。日本時間や北京時間の0時で日付を区切ると、1つの米国取引日が2日間に分断されてしまいます。日足の日付は必ず America/New_York の取引日を基準に判定し、保存時は UTC を維持してください。
04
実装チェックリスト
- タイムスタンプが秒(10桁)かミリ秒(13桁)かを確認する。
- データベース保存時は常に UTC またはタイムゾーン付き型を使用する。
- 画面表示および取引日の日付判定には America/New_York を使用する。
- 3月と11月の夏時間切り替え前後の寄り付き時刻をそれぞれ検証する。
- プレマーケット・通常立会・アフターマーケットのデータを要件に応じて区別する。
仕様出典と検証記録 · 2026-10-13
以下の一次資料で関連するエンドポイント、フィールド、取引所規則を確認しました。
Python コードは Python 3.14.0 の ast.parse で構文解析を通過しました。依存関係、実行互換性、ネットワーク応答の検証は含みません。
今回の確認では実際の Token による AllTick 要求や本番エンドツーエンド試験は実行していません。再現時にプラン、ライブラリ版、取引時間、ret/trace、結果を記録してください。
一次資料
導入前に再現する項目
- America/New_York で両 DST 切替を検査し、タイムゾーン付き UTC を保存して現地取引日を求めます。固定時差は使いません。
- 祝日、短縮取引日、時間外対応を確認し、足 timestamp の秒と約定 tick_time のミリ秒を別々に正規化します。