Example
Input (date + pattern)
Date: 2026-05-13T14:30:00 Pattern: dddd, MMM D, YYYY · HH:mm
Output
Wednesday, May 13, 2026 · 14:30
Note
Token cheat sheet — YYYY=4-digit year, M=1+digit month, MM=2-digit, D=day, HH=24h hour, h=12h hour, A=AM/PM, dddd=full weekday, etc.
Usage / FAQ
When to use
- Quickly validate format tokens for moment.js, dayjs, date-fns
- Produce locale-specific date strings (e.g. Korean style: 2026년 5월 13일 수요일)
- Design date formats for emails, invoices, and reports
- Translate ISO 8601 into a human-friendly string
- Audit date formatting across multi-language sites
FAQ
- Q.M vs MM?
- A.M is single-digit-allowed (1, 2, …, 12). MM is always two digits (01, 02, …, 12). Human-readable formats usually use M; machine formats like ISO 8601 use MM.
- Q.Is YYYY the same as yyyy?
- A.It depends on the library. moment.js treats them the same, but ISO 8601's `yyyy` is the 'week year', which can differ from the calendar year by a few days around new year. For most cases stick with YYYY.
- Q.How are timezones handled?
- A.Default is the browser's local TZ. If the input contains a TZ offset (`+09:00`), that's honored. Run inputs through the timezone tool first if you need explicit conversion.
Fun facts
ISO 8601 (1988) locked in the `YYYY-MM-DD` standard. 'Largest unit first' + always four-digit year + zero-padding — meaning lexical sort equals chronological sort. Before that, US `MM/DD/YYYY` and European `DD/MM/YYYY` clashed and made data exchange a nightmare.
ISO 8601 — OfficialThe `strftime` format tokens (`%Y` `%m` `%d` `%H` etc.) were baked into ANSI C in 1989. The Unix `date` command and every language since (Python, Ruby, PHP, …) adopted the convention as-is — it's a 30+ year lingua franca.
POSIX strftimeJavaScript's `Date` object uses 0-based units, so months are 0 (January) – 11 (December). That's a fossil from 1995 — Brendan Eich built JavaScript in 10 days, and Java's `java.util.Date` (also 0-based months) was the model. Its side effects have been trapping JS developers for 30 years.
MDN — Date constructor
Related guides
- Timezone Pitfalls in JavaScript — UTC, IANA, DST, and Storing Dates Right
Why JS Date is dangerous, why you should always store UTC, the difference between offset and IANA name, daylight saving traps, and the right way to format for users.
- How Unix Time Actually Works
Why 1970, why Unix time isn't actually monotonic, the Y2038 problem on 32-bit systems, the leap-second mess, monotonic vs wall clocks, and why "now()" can go backwards.
Related tools
- Unix Timestamp Converter
Convert between Unix timestamps (seconds/milliseconds) and ISO 8601 / UTC / locale time. Auto-detects input.
- Cron Expression Parser
Translate a cron expression into human-readable text and preview the next 5 run times. Locale-aware.
- Cron Expression Builder
Build a cron expression visually — pick minute / hour / day / month / weekday from presets or free input. Preview human-readable text and next 5 run times.
- Time Zone Converter
Convert datetime between IANA time zones using the browser's Intl API.
- Date Calculator
Four modes — duration between two dates, date ± N days, days → Y/M/D breakdown, and a persistent D-day list.
- Pomodoro Timer
Full-screen Pomodoro timer that alternates focus and break sessions. Custom durations, color, sound, and fullscreen for desk use.