100% local — your data never leaves your browser

Date to Unix Timestamp — The Number an API Wants

Convert a date to Unix seconds and milliseconds. A date that does not exist is refused, so you never paste a value that quietly slid a month.

Instant Private Zero cookies

Date input

Timestamp output

What this tool does

A date in, the three forms you usually need out.

2026-06-11T12:00:00Z
Unix seconds: 1781179200
Unix milliseconds: 1781179200000
ISO 8601 (UTC): 2026-06-11T12:00:00.000Z

now works too, and gives you the moment you pressed the button. ISO 8601 is the form to prefer; June 11, 2026 and other long forms are read as well, when they are not ambiguous.

A date that does not exist is refused

2026-02-30
2026-02-30 is not a date: February 2026 has 28 days

Date.parse rolls the extra days into the next month, so that input used to give you the 2nd of March — a timestamp with nothing wrong about it, except that it was not the date you wrote. A day that does not exist is almost always a typo or a calculation that went wrong further up, and answering it with a plausible number hides both. The month’s real length is in the message, and 29 February is allowed in leap years and refused in the others.

An ambiguous date is refused

11/06/2026
"11/06/2026" is ambiguous: day 11 of month 6, or day 6 of month 11? Write it as YYYY-MM-DD.

Date.parse reads slashed dates the American way: month first. For most of the world 11/06/2026 is the 11th of June, and the silent disagreement is five months wide. When both numbers could be a month, the converter names the two readings instead of choosing. When only one reading is possible it takes it, in either order: 25/12/2026 and 12/25/2026 are both Christmas 2026, read as midnight UTC like a date with no time. Date.parse only ever read its own order, and answered the rest of the world with “Unrecognized date”.

Where the day starts

  • A date alone is UTC. 2026-06-11 is midnight UTC, wherever you are. That is what the specification says, and it is why a date-only value is portable.
  • A date and time without a zone is local. 2026-06-11T12:00:00 is noon in your browser’s timezone: the same text is two different instants in Paris and in New York.
  • Z or an offset settles it. 2026-06-11T12:00:00Z, or +02:00, means the same instant everywhere — worth the two extra characters.

Private by design

Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.

Frequently asked questions

Why is `2026-02-30` refused?
Because it is not a date, and the answer you used to get was the 2nd of March. `Date.parse` rolls an out-of-range day into the next month, so a typo or a bad calculation upstream came back as a timestamp that looks perfectly fine. The converter now stops and says what the month holds: February 2026 has 28 days. A real defect, found while writing this page and fixed.
Why is `11/06/2026` refused?
Because it is the 11th of June for half the world and the 6th of November for the other half, and `Date.parse` picks the American reading without a word. On a site read in seven languages, that silence is a wrong timestamp waiting to happen. Both readings are named in the error; write `2026-06-11` and there is nothing left to guess.
Which timezone is used?
It depends on what you write, and that is the specification’s doing. A date on its own — `2026-06-11` — is midnight UTC. A date with a time and no zone — `2026-06-11T12:00:00` — is noon where your browser is, so the same text gives a different timestamp in Paris and in New York. Adding `Z` or `+02:00` settles it.

Related converters