REST APIとJSONでの日付フォーマット

REST APIとJSONペイロードでの日付フォーマットのベストプラクティス。ISO 8601、Unixタイムスタンプ、RFC 3339、API設計でのタイムゾーン情報の処理を解説。

Practical

詳細な説明

APIとJSONでの日付フォーマット

APIの日付フォーマット選択は、相互運用性、タイムゾーン処理、開発者体験に影響する重要な設計決定です。

3つの主要アプローチ

1. ISO 8601 / RFC 3339文字列

{ "created_at": "2026-02-28T14:30:00Z" }

2. Unixタイムスタンプ(整数)

{ "created_at": 1772236800 }

3. カスタム文字列フォーマット

{ "created_at": "02/28/2026 2:30 PM" }

推奨:ISO 8601 / RFC 3339

業界のコンセンサスはISO 8601(特にRFC 3339)の使用です:

理由:

  1. 人間可読 — 開発者がペイロードを視覚的に検査可能
  2. タイムゾーン対応 — オフセットが文字列の一部
  3. 広くサポート — すべての言語にパーサーが組み込み
  4. ソート可能 — 辞書順ソート = 時系列ソート
  5. 業界標準 — GitHub、Stripe、Twilio、AWSが使用

API設計のベストプラクティス

  1. 常にタイムゾーン情報を含める
  2. 保存にはUTCを使用
  3. フォーマットをドキュメント化
  4. 一貫性を保つ — すべての日付フィールドで同じフォーマット
  5. デフォルトは秒精度 — 必要な場合のみミリ秒を追加

ユースケース

日付フォーマットの決定はすべてのAPIコンシューマーに影響します。REST API設計、GraphQLスキーマ定義、Webhookペイロード仕様、SDKおよびクライアントライブラリ実装、APIドキュメント、タイムスタンプカラムのデータベーススキーマ設計に関連します。

試してみる — Date Format Reference & Tester

フルツールを開く