{
  "note": "Assert on the pattern, the separator code points and the fraction-digit counts. The rendered example strings are illustrative: CLDR revises month abbreviations and spacing between releases, so a byte comparison against them will eventually fail for reasons that are not your bug.",
  "instant": "2026-03-14T09:05:00",
  "iso8601": "2026-03-14T09:05:00Z",
  "locales": [
    {
      "locale": "en-US",
      "patterns": {
        "shortDate": "M/d/yy",
        "mediumDate": "MMM d, y",
        "shortTime": "h:mm a"
      },
      "hourCycle": "h12",
      "examples": {
        "shortDate": "3/14/26",
        "mediumDate": "Mar 14, 2026",
        "shortTime": "9:05 AM"
      }
    },
    {
      "locale": "en-GB",
      "patterns": {
        "shortDate": "dd/MM/y",
        "mediumDate": "d MMM y",
        "shortTime": "HH:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "14/03/2026",
        "mediumDate": "14 Mar 2026",
        "shortTime": "09:05"
      }
    },
    {
      "locale": "de-DE",
      "patterns": {
        "shortDate": "dd.MM.yy",
        "mediumDate": "dd.MM.y",
        "shortTime": "HH:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "14.03.26",
        "mediumDate": "14.03.2026",
        "shortTime": "09:05"
      }
    },
    {
      "locale": "fr-FR",
      "patterns": {
        "shortDate": "dd/MM/y",
        "mediumDate": "d MMM y",
        "shortTime": "HH:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "14/03/2026",
        "mediumDate": "14 mars 2026",
        "shortTime": "09:05"
      }
    },
    {
      "locale": "es-ES",
      "patterns": {
        "shortDate": "d/M/yy",
        "mediumDate": "d MMM y",
        "shortTime": "H:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "14/3/26",
        "mediumDate": "14 mar 2026",
        "shortTime": "9:05"
      }
    },
    {
      "locale": "pl-PL",
      "patterns": {
        "shortDate": "d.MM.y",
        "mediumDate": "d MMM y",
        "shortTime": "HH:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "14.03.2026",
        "mediumDate": "14 mar 2026",
        "shortTime": "09:05"
      }
    },
    {
      "locale": "ru-RU",
      "patterns": {
        "shortDate": "dd.MM.y",
        "mediumDate": "d MMM y 'г'.",
        "shortTime": "HH:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "14.03.2026",
        "mediumDate": "14 мар. 2026 г.",
        "shortTime": "09:05"
      }
    },
    {
      "locale": "ja-JP",
      "patterns": {
        "shortDate": "y/MM/dd",
        "mediumDate": "y年M月d日",
        "shortTime": "H:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "2026/03/14",
        "mediumDate": "2026年3月14日",
        "shortTime": "9:05"
      }
    },
    {
      "locale": "zh-CN",
      "patterns": {
        "shortDate": "y/M/d",
        "mediumDate": "y年M月d日",
        "shortTime": "HH:mm"
      },
      "hourCycle": "h23",
      "examples": {
        "shortDate": "2026/3/14",
        "mediumDate": "2026年3月14日",
        "shortTime": "09:05"
      }
    },
    {
      "locale": "ar-EG",
      "patterns": {
        "shortDate": "d‏/M‏/y",
        "mediumDate": "dd MMMM y",
        "shortTime": "h:mm a"
      },
      "hourCycle": "h12",
      "examples": {
        "shortDate": "١٤‏/٣‏/٢٠٢٦",
        "mediumDate": "١٤ مارس ٢٠٢٦",
        "shortTime": "٩:٠٥ ص"
      }
    }
  ],
  "traps": [
    {
      "id": "day-month-ambiguity",
      "summary": "03/04/2026 is 3 April under en-GB and 4 March under en-US.",
      "why": "There is no way to disambiguate a short date without knowing the locale, which is why interchange formats use ISO 8601 and only presentation uses these patterns."
    },
    {
      "id": "rlm-inside-the-pattern",
      "summary": "CLDR's ar-EG short date pattern embeds U+200F RIGHT-TO-LEFT MARK between the fields, so the pattern string is not the seven ASCII characters it looks like.",
      "why": "Comparing patterns byte-for-byte across an ICU upgrade fails on the invisible characters first."
    },
    {
      "id": "era-and-literal-text",
      "summary": "ru-RU's medium pattern ends with the quoted literal 'г'. (for 'года').",
      "why": "Quoted literals inside a pattern must not be treated as field characters; a hand-rolled formatter that maps every letter to a field produces nonsense here."
    },
    {
      "id": "hour-cycle",
      "summary": "en-US and ar-EG use a 12-hour clock with a day-period marker; the rest here use a 24-hour clock.",
      "why": "The day-period string is localized too ('AM', 'ص'), and a 12-hour formatter that omits it loses twelve hours of information."
    }
  ]
}
