Date Format Converter
Dates arrive in a dozen incompatible layouts — 05/29/2026, 29.05.2026, May 29, 2026, 2026-05-29 — and you constantly need to turn one into another. Paste a date, tell the tool how to read it if it is ambiguous, and get it back in every common format plus a custom pattern you define with simple tokens.
Pattern tokens
DD 01-31 · D 1-31 · Do ordinal (29th) · dddd weekday · ddd short weekday
HH 00-23 · H 0-23 · hh 01-12 · h 1-12 · mm minutes · ss seconds · A AM/PM · a am/pm
Wrap literal text in [square brackets].
How to use the Date Format Converter
Paste a date into the input box in almost any layout. If the date is purely numeric and ambiguous — like 05/06/2026, which could be May 6th or June 5th — use the order dropdown to tell the tool whether the day or the month comes first. The line beneath confirms how the date was understood, and the table shows it reformatted into ISO 8601, US, European, long-form, and several other common layouts at once.
For anything bespoke, type a custom output pattern using the tokens listed at the bottom: YYYY-MM-DD gives 2026-05-29, while dddd, MMMM Do YYYY gives a long friendly date. Literal words you want to keep verbatim go in square brackets, so [at] prints "at" rather than being interpreted. The result updates live and copies with one click.
Parsing and formatting run entirely in your browser, so the tool works offline and your dates never leave your device.
Why date formats are such a mess
There is no single way to write a date, and the differences are not just cosmetic — they are genuinely ambiguous. The string 03/04/2026 means the 4th of March to most of the world and the 3rd of April in the United States. Without knowing the convention, software cannot reliably parse it, which is the single biggest source of date bugs in data import and integration. The international standard, ISO 8601 (YYYY-MM-DD), exists precisely to end this confusion: it is unambiguous, sorts correctly as plain text, and is the format you should prefer for storage and interchange.
Converting between formats is really two steps: parsing the input into an absolute date, then formatting that date into the desired layout. Parsing is the hard half. Named-month strings like "May 29, 2026" are unambiguous, and ISO strings are too, but bare numeric dates require you to declare the day/month order — which is why this tool asks. Once the date is parsed correctly, formatting is mechanical: each token in the output pattern is replaced with the corresponding piece of the date.
Format tokens are a small language shared, with minor variations, across libraries like Moment, Day.js, and date-fns. YYYY is the four-digit year, MM the zero-padded month, DD the zero-padded day; doubling or singling a letter usually toggles padding, and longer runs spell things out (MMMM for the full month name). Knowing this vocabulary lets you describe any layout precisely. The practical advice: parse messy human input as early as possible, work with absolute dates internally, and only format to a human-readable string at the very edge of your system — ideally storing ISO 8601 everywhere in between.
Common use cases
- Cleaning imported data. Normalize a column of mixed-format dates into consistent ISO 8601 before loading it.
- Matching a target system. Reformat a date to the exact pattern an API, spreadsheet, or report expects.
- Resolving ambiguity. Decide correctly whether a numeric date is day-first or month-first and see the result instantly.
- Building display strings. Craft a friendly, human-readable date with a custom token pattern for a UI or document.