safepaste time

Timestamp converter

Paste a Unix timestamp or a date and read it in other formats: seconds, milliseconds, ISO 8601, and your own time zone. It is converted in this tab and never sent anywhere.

Timestamp

What happens to what you paste

Nothing happens to it beyond what you asked for. It is converted inside this browser tab, and it is gone as soon as you close the tab. SafePaste has no account, no database and no analytics, so there is nothing for it to be stored in.

How your browser enforces this

The page includes a Content Security Policy of connect-src 'none'. That makes fetch, XMLHttpRequest, WebSocket, EventSource and sendBeacon fail in the browser itself, whatever the code on this page tries to do. Images and fonts are restricted to data that is already inside the file, and form-action 'none' prevents all form submission.

You do not have to take our word for it. Open your browser's developer tools, watch the Network tab while you use the page, and confirm that it stays empty after the page itself has loaded.

What the host can see

This page is served by Cloudflare Pages. Like any web server, it sees the request for the page itself, which includes your IP address, the name and version of your browser, and the time of the request. That happens before any of this page's code runs, and it is the same for every website you visit. What it does not see is anything you paste, because nothing you paste is ever part of a request. That includes your time zone. The page reads it from your computer's settings so that it can show you local times, and it does that inside this tab without sending it anywhere.

Cookies, storage and tracking

Links to other sites

The footer links to Flytrap Industries and to a Stripe donation page. Neither is contacted unless you click it. They carry no query string and no referrer, so following one tells the destination nothing about what you were doing here. If you do donate, Stripe handles that payment under its own privacy policy and SafePaste never sees your card details.

Working offline

Save this page to disk and open it again. It is a single self-contained file, so it works with no network at all, including on a machine that has never been connected to one.

This policy describes the page you are reading. It is part of the same file, so the copy you save to disk carries it too.

How timestamps work

A Unix timestamp is the number of seconds that have passed since midnight UTC on 1 January 1970, a moment that is usually called the epoch. The number does not carry a time zone or a calendar with it, and that is a big part of why computers like to store time this way. The same number means the same moment wherever in the world it is read, and the time zone only comes into play when that moment needs to be shown to a person.

Seconds, milliseconds and smaller units

Not every system counts in seconds, though. JavaScript's Date.now() and Java's System.currentTimeMillis() both count milliseconds, Python's time.time() gives you seconds with a fractional part, and Go's UnixNano() counts all the way down to nanoseconds. Because each of those units is a thousand times smaller than the one before it, you can usually tell which one a timestamp uses just by counting its digits. For any moment between 2001 and 2286, a timestamp in seconds has 10 digits, one in milliseconds has 13, one in microseconds has 16, and one in nanoseconds has 19.

This page uses the same trick to work out the unit when you paste in a number. The unit it picked is shown in the status line under the box, and if the number is some other length, the status line will tell you that the unit is only a guess. If the guess is wrong, you can pick the right unit from the buttons that appear underneath.

Writing a moment as text

When a moment needs to be written out as text instead of as a number, the usual choice is ISO 8601, which looks like 2026-09-28T14:30:00Z. It starts with the date, has the letter T to separate the date from the time, and ends with the time zone. A Z at the end means the time is in UTC, while something like +02:00 means the time is two hours ahead of UTC. Because the largest unit always comes first, sorting a list of these as plain text also puts them in time order. Most APIs actually use RFC 3339, which is a stricter version of ISO 8601 that leaves out some of its less common forms.

When there is no time zone

If a date and time such as 2026-09-28T14:30 does not include a time zone, there is no way to know exactly which moment it refers to, because half past two in the afternoon happens at a different moment in every time zone. Even JavaScript is not consistent about how it handles this. new Date("2026-09-28") treats a date on its own as UTC, but new Date("2026-09-28T14:30") treats a date with a time as your local time.

This page reads both of them as UTC, and the status line will point out when it has done that. If you meant your own local time instead, you can switch to it with the buttons that appear underneath.

Daylight saving time

In places that use daylight saving time, the clocks jump forward an hour once a year and go back an hour once a year. That means some local times never happen at all, because the clock skips right over them, and some happen twice, because the clock runs through the same hour two times in a row.

If you ask this page to read a local time that was skipped, it uses the offset that was in effect just before the clocks changed, which is also what most date libraries do. If you give it a local time that happened twice, it uses the first of the two. The status line will explain which of these happened.

Some other things worth knowing