How to use the date format converter
- Type or paste a value into Date: an ISO 8601 string, a Unix timestamp or an RFC 2822 date.
- Choose a Time zone. A date without an offset is read as a local time in that zone, and every row is shown in that zone.
- Edit Custom pattern with the tokens listed below the field. Text inside
[brackets]is copied as it is. - Read the custom result at the top and the full table of formats below it.
What it does and when to use it
Dates move between systems in different shapes: an API returns 1767225600, the log line says 2025-12-31T19:00:00-05:00, and the UI needs “Wed 31 Dec”. This page shows all of them side by side for one instant. Use it to check what a timestamp really means, to choose the right format string before writing code, or to test a pattern for a report header or file name.
Besides the standard formats, the table has SQL DATETIME, UK, US, German and Japanese date orders, locale strings for five languages, the ISO week date, the ordinal date and the quarter.
How it works
Numbers are treated as Unix time. The unit is picked by size: below 10¹¹ is seconds, below 10¹⁴ milliseconds, then microseconds and nanoseconds. A YYYY-MM-DD date with an optional time is read as a wall-clock time in the chosen zone. Anything else goes to the JavaScript Date.parse function. Fixed formats are built from the zone’s date parts via Intl.DateTimeFormat; locale rows use the browser’s own locale data, so their exact wording can vary a little between browsers.
Worked examples
New Year in New York. Date 1767225600, zone America/New_York, pattern ddd D MMM YYYY, h:mm A Z:
Custom pattern: Wed 31 Dec 2025, 7:00 PM -05:00
ISO 8601 | 2025-12-31T19:00:00-05:00
ISO week date | 2026-W01-3
The same instant is already 1 January 2026 in UTC, and ISO week 1 of 2026.
The 53-week year. Date 2026-12-31 with pattern GGGG-[W]WW, [day] DDD gives 2026-W53, day 365. Use GGGG (ISO week-year) with WW, not YYYY, or late-December weeks get the wrong year.
A pattern without brackets. Today is dddd returns To5amy i0 Friday: d became the weekday number, a became “am” and s became the seconds. Write [Today is] dddd.
Limits and tips
- Only the 61 zones in the menu are available, all using IANA names.
- The tool formats dates; it does not parse a string against your custom pattern.
- Times that fall in a daylight-saving gap are moved forward to the next valid time.
- For raw timestamp work see the Unix timestamp converter; to compare zones, Timezone Dev; for the gap between two dates, Timestamp Diff.
Frequently asked questions
Which input formats does it accept?
Why did letters in my pattern turn into numbers?
Do the tokens match Moment.js or date-fns?
Which row should I store in a database?
Why is the RFC 2822 row in GMT when I picked another zone?
How do we know nothing is uploaded? Test it yourself on the privacy proof page.