UUID generator
Version 4 UUIDs, one at a time or in batches, in lowercase, uppercase, without hyphens or in braces.
en / tools / timestamp-converter
From epoch to date and back, in seconds or milliseconds, with ISO 8601 and the time in any zone.
Free, in the browser, no account
An epoch in seconds or milliseconds, an ISO 8601 string, or a date with a time.
The instant
—
—
These two numbers do not depend on the zone. An instant is the same everywhere: it is the wall clocks that differ.
Seconds are truncated, not rounded: it is the second in progress, like date +%s.
The clocks
—
—
—
—
Everything happens in your browser: no data is sent anywhere.
The instant lives in the address: whoever opens the link sees this moment, not theirs.
Because a log says 1700000000 on one line and 1700000000000 on the next, and those are the same
instant in two units. Because a date from an API is in UTC and the one in the database is in the
server’s zone. And because the question you actually have in front of a timestamp is never “convert
it”, it is “did this happen before or after that one”.
A ten-digit number is almost always an epoch in seconds, a thirteen-digit one in milliseconds. The tool guesses with a threshold at eleven digits, and the guessing is declared: under the field it says how it read the number, and next to it are two buttons to contradict it.
The threshold is not arbitrary. Eleven digits read as seconds are the year 5138, which is nobody’s data; read as milliseconds they are March 1973, which very well may be. Below it the reasoning flips, and the only sensible answer is “seconds”.
03/04/2026 means 3 April in Europe and 4 March in the United States. The JavaScript engine does not
stop at that string: it answers March, the American way, without flagging anything. A converter that
passes that answer on is worse than one that refuses it, because nobody double-checks a date they
were handed. So here it is refused, with a note on how to write it instead.
There is one form I do accept although it is not ISO: 2026-08-01 10:30, with a space where the T
should be. It is not ISO but it is how databases and logs write dates, which is to say it is what
gets pasted in here nine times out of ten.
2026-08-01 and 2026-08-01T00:00 are not the same instant, and the difference is in the language
specification, not in this tool: a date without a time is read as UTC, the same date with a
time but no zone is read where you are. In Zurich in summer that is two hours apart. The two strings
look alike enough to be mistaken for each other, so the line under the field always says which of the
two it saw.
2147483647 is the last second that fits in a signed 32-bit integer, and it falls on 19 January
2038. It passes here without trouble, and so does the second after it: that limit belongs to a C
type, not to JavaScript dates, which reach about 275,000 years either side of 1970.
Everything happens in your browser. This site is made of static files and has no server to send anything to, even if it wanted one. The instant goes into the address, so a link carries the moment you are talking about and not the one it is opened at.
Version 4 UUIDs, one at a time or in batches, in lowercase, uppercase, without hyphens or in braces.
Paste some JSON, find out whether it is valid and where it breaks, with line and column when the browser gives them.
A token's header and payload, with readable dates and glossed claims. The signature is not verified, and the tool says so.