March 4th is 3/4/2026 in the US and 4/3/2026 in the UK, and both are correct. Generating the same record across locales puts those differences side by side, which is the fastest way to find a hard-coded format.
What you can control
- Eight locales, generated as parallel rows for direct comparison.
- Date, number and currency samples use the platform's own
Intlformatting, so they match what a browser will actually render. - Name order flips for CJK locales, because family name comes first there.
- The collation sample sorts names with locale-aware comparison, which differs from ASCII sort.
What this is not
Formatting comes from the JavaScript Intl API, so results depend on the ICU data in your runtime. Older Node builds ship reduced ICU and will format some locales as English.
Questions
Why does date order differ?
Convention, not correctness. The US writes month-day-year; most of Europe writes day-month-year; Japan writes year-month-day. Only ISO 8601 is unambiguous, which is why storage should always use it.
What is collation?
Locale-aware sort order. In Swedish, Å sorts after Z; in German it sorts with A. A plain byte sort gets both wrong and produces a name list that looks broken to a native speaker.
Why do some names have no space?
Japanese and Chinese names put family name first and run the parts together. Any splitting logic that assumes a space fails on them.