Format a date for the given locale
Use Intl.DateTimeFormat with an explicit locale and time zone.
function formatDate({ date, locale }) { return new Intl.DateTimeFormat(locale, { timeZone: 'UTC' }).format(new Date(date)); }
Input & expected output
Input
{
"date": "2026-10-28",
"locale": "pt-BR"
}Expected output
"28/10/2026"The edge case
Input
{
"date": "2026-10-28",
"locale": "en-US"
}Expected output
"10/28/2026"Know the limits
- timeZone: "UTC" keeps a YYYY-MM-DD date on the same day; without it a local time zone west of UTC shows the previous day.
- Exact output can vary slightly between ICU versions.
The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.
Source & maintenance
Based on Format a date for the given locale from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.
Pins timeZone to UTC so a calendar date does not shift to the previous day. Original MDX retained as inert source evidence.
Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.
Keep exploring
- Compare two dates — Compare validated ISO calendar dates in UTC and return -1, 0 or 1.
- Add AM PM suffix to an hour — Turn an hour from 0 to 23 into a 12-hour label with am or pm.
- Calculate the number of days between two dates — Count whole calendar days between two YYYY-MM-DD dates.