⏰ Date and Time Free Forever

Date Format Converter Online Free

Paste any date and convert it to DD/MM/YYYY, ISO 8601, US format, long format, Unix timestamp and more, all at once.

Enter any date Paste any date in any common format — the tool detects it automatically.
or try an example:
Could not parse that date. Try a format like 2024-06-15, 15/06/2024, or June 15, 2024.
Enter a date above to see all formats
About This Tool

Every date format, from one input, plus a straight answer on the 03/04/2024 problem

Paste a date in almost any shape and this tool converts it into nineteen formats at once: ISO 8601, regional slash formats, long form English, ordinals, ISO date and time, UTC, Unix timestamps, ISO week dates, quarters and day of year. Every row has a copy button, and one button copies them all. Nothing leaves your browser.

03/04/2024
Most of the world reads3 April 2024. Day first, then month. This is the convention across Europe, India, Australia, Latin America and Africa.
The United States reads4 March 2024. Month first. Also used in the Philippines and in parts of Canada.

There is no way to resolve that from the string alone. So the parser applies a rule you can predict rather than a guess you cannot: if the first number is above 12 it must be the day, if the second is above 12 it must be the day, and if both are 12 or under it assumes day first. In that last case the tool tells you, and one click switches it to month first. Enter 2024-03-04 instead and there is nothing to resolve. That is the whole argument for ISO 8601.

What the parser accepts

Input is tested against ordered patterns, most specific first, with the native Date constructor as a last resort fallback.

PatternExampleNotes
YYYY-MM-DD2024-06-15ISO 8601 calendar date, unambiguous
YYYYMMDD20240615ISO basic format, common in filenames and EDI
DD/MM/YYYY15/06/2024Also accepts dot and hyphen separators and two digit years
MM/DD/YYYY06/15/2024Detected when the second number exceeds 12
YYYY/MM/DD2024/06/15Year first, no ambiguity possible
Month D, YYYYJune 15, 2024Full or three letter month names
D Month YYYY15 June 2024British long form, also 15th June 2024 and 15-Jun-2024
9 to 11 digit integer1718409600Unix seconds, negative values for dates before 1970
12 to 14 digit integer1718409600000Unix milliseconds
Date and time strings2024-06-15T10:30:00ZISO 8601 with a time, and RFC 2822 strings such as Sat, 15 Jun 2024 10:00:00 GMT. The time is kept.
1 MatchRegex tests run in order. First hit wins, so specific patterns are checked before loose ones.
2 ConstructA local Date is built from explicit year, month and day arguments. Month is zero indexed in JavaScript, so June is 5.
3 ValidateEach part is checked against the real calendar. 31/02/2024 is rejected with a clear message instead of rolling over to 2 March.
4 FormatNineteen output strings are built from the components, including the ISO week date, quarter and day of year.

Why the native Date constructor is a poor first choice

You might expect new Date(string) to handle everything. It does not, and the failures are subtle.

// treated as UTC midnight, then rendered in local time new Date('2024-06-15') // in New York this prints Jun 14 2024 20:00:00 // treated as LOCAL midnight, one character difference new Date('2024/06/15') // prints Jun 15 2024 00:00:00 // explicit components, always local, never surprising new Date(2024, 5, 15)

That first case is the classic off by one day bug, and it burns people constantly. The ECMAScript spec mandates it: date only ISO strings are UTC, date and time strings without an offset are local. This tool sidesteps the whole issue by always constructing from explicit numeric components.

Format token reference

If you are building the format string yourself, these are the tokens most libraries share. Note that Unicode LDML is the standard nearly all of them follow.

YYYYFour digit year
YYTwo digit year
MMMMFull month name
MMMThree letter month
MMMonth, zero padded
MMonth, no padding
DDDay, zero padded
DoOrdinal day, 1st 2nd 3rd
ddddFull weekday name
dddShort weekday
DDDDay of year
QQuarter, 1 to 4
WISO week number
XUnix seconds
xUnix milliseconds
ZUTC offset

Watch out for the capital letters. In LDML and in most libraries, YYYY is the week based year and yyyy is the calendar year. They differ for a few days each January. This caused a wave of production bugs on 29 December 2014 and again on 30 December 2018, when developers formatting with YYYY saw the year jump forward.

The ordinal suffix rule

English ordinals look simple until you hit the teens. The tool uses the standard modulo trick.

// 1st 2nd 3rd 4th ... but 11th 12th 13th suffix(n) { var s = ['th','st','nd','rd'], v = n % 100; return n + (s[(v - 20) % 10] || s[v] || s[0]); }

The v % 100 isolates the teens so 11, 12 and 13 fall through to th. Everything from 20 upward wraps back to the single digit rule.

Regional conventions, at a glance

LocaleShort formWhere
en-GB15/06/2024UK, Ireland, Australia, New Zealand, India, most of Europe
en-US6/15/2024United States, Philippines
de-DE15.06.2024Germany, Austria, Switzerland, Nordics
ja-JP2024/06/15Japan, China, Korea, Hungary
ISO 86012024-06-15Databases, APIs, logs, anything machine read
// let the browser do regional formatting for you new Intl.DateTimeFormat('en-GB', { dateStyle: 'long' }) .format(new Date(2024, 5, 15)); // 15 June 2024

Related references and libraries

  • ISO 8601 is the international standard. Store dates this way and sort order matches chronological order for free, since the string sorts lexicographically.
  • RFC 3339 is the stricter internet profile of ISO 8601 used by JSON APIs. It always requires a time zone offset.
  • Intl.DateTimeFormat is built into every modern browser and handles locale aware output without a library.
  • date-fns format and Luxon toFormat cover token based formatting in JavaScript.
  • strftime is the C style token set used by Python, PHP, Ruby and shell tools. Different tokens, same idea.
  • Date format by country maps the day first and month first split geographically.

Common jobs this solves

Cleaning up a CSV export where dates arrived in three formats, converting a US spreadsheet for a European system, generating a filename safe compact date, feeding a legacy API that wants Unix seconds, reconciling a log timestamp against a report, and writing a date in long form for a letter without second guessing the comma placement.

Common Questions

Questions About the Date Format Converter

ISO 8601 is the international standard for representing dates and times. Dates are written as YYYY-MM-DD (e.g. 2024-06-15). It is unambiguous and sorts correctly as a string, which is why databases, APIs, and programming languages use it by default.

Paste your date in the input field. If the day is above 12 (e.g. 25/06/2024), the tool detects it as DD/MM and converts it automatically. For dates where the day is 12 or below and ambiguous (e.g. 06/05/2024), the tool reads it as DD/MM and shows a switch so you can read it as MM/DD instead. You see both MM/DD/YYYY (US) and DD/MM/YYYY as separate output rows.

Yes. The output includes both Unix timestamp in seconds (used by most systems) and in milliseconds (used by JavaScript). You can also paste a Unix timestamp as the input and convert it to any readable date format.

The tool accepts: ISO 8601 (YYYY-MM-DD), compact ISO (YYYYMMDD), DD/MM/YYYY with slash, dash or dot, MM/DD/YYYY, two digit years, YYYY/MM/DD, long formats (June 15 2024, 15th June 2024, Jun 15 2024, with or without a weekday), Unix timestamps in seconds or milliseconds, ISO date and time strings and RFC 2822 date strings.

This tool converts one date at a time — paste a value, copy the format you need. For bulk conversion across hundreds of rows, use a spreadsheet formula or a scripting approach. For single lookups, form-filling, and confirming the right format to use, this tool is the fastest option.