日付フォーマット検証 — JSON Schemaで日付文字列を検証

JSON Schemaの format キーワードで date および date-time フォーマットの文字列を検証する方法を解説します。

String Constraints

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "birthDate": {
      "type": "string",
      "format": "date"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "meetingTime": {
      "type": "string",
      "format": "time"
    }
  },
  "required": ["birthDate", "createdAt"]
}

Test Data

{
  "birthDate": "1990-07-15",
  "createdAt": "2025-01-20T14:30:00Z",
  "meetingTime": "09:00:00+05:30"
}

詳細な説明

JSON Schemaには日付・時刻関連の複数の format キーワードが用意されています。これらはRFC 3339に基づいた文字列形式を検証します。

利用可能なフォーマット:

  • date: 2024-01-15 のような日付文字列(YYYY-MM-DD形式)
  • time: 14:30:00Z のような時刻文字列
  • date-time: 2024-01-15T14:30:00Z のようなISO 8601形式の日時文字列
  • duration: P3Y6M4DT12H30M5S のようなISO 8601期間文字列

これらのフォーマットを使うことで、日付文字列が正しい形式であることを宣言的に検証できます。ただし、format キーワードの対応状況はバリデータ実装によって異なります。

ユースケース

予約システム、イベント管理、ログ記録などで日付・時刻データの形式を検証する際に使用します。

試してみる — JSON Schema Validator

フルツールを開く