Skip to content

Milliseconds to Date

Convert epoch milliseconds to a date.

Milliseconds
Output

No result

About Milliseconds to Date

Milliseconds to Date turns an epoch value - the count of milliseconds since the first of January 1970 in UTC - into a readable timestamp on two lines: one in the local time zone of the machine running the page, one in UTC. It is the quickest way to make sense of a raw timestamp pulled out of a log line, a database row, an API response or a JavaScript call that returns the current epoch value.

The local line is formatted with the conventions of your own locale, and the UTC line uses the same style that HTTP headers carry, so the two can be compared directly when you are trying to work out why a recorded event landed in the wrong place. The full JavaScript date range is accepted, roughly plus or minus eight point six four quadrillion milliseconds, and the tool reports Invalid for anything beyond it.

Two behaviours are worth knowing before you trust an answer. A value that cannot be parsed as a number is not rejected - it is read as zero, so a typo reports the epoch itself rather than raising an error, and an empty field does exactly the same. And the field starts filled with the epoch value at the moment this page was built, not with the current time, so to mean now you have to put a fresh value in by hand.

How to use Milliseconds to Date

  1. 1 Enter the number of milliseconds since the epoch, or paste a timestamp from a log or an API response.
  2. 2 Run the tool to see the local and the UTC rendering side by side.
  3. 3 Compare the two lines when you need to work out which zone a recorded event belongs to.

Frequently asked questions

Why does the field already have a number in it?

It is seeded with the epoch milliseconds at the moment this page was generated, which drifts further behind the present every day. To convert the current time, put in a fresh value yourself.

What happens with text or an empty field?

Both are read as zero and report the first of January 1970 rather than raising an error. Only a value outside the range the JavaScript Date type accepts - roughly eight point six four quadrillion milliseconds - produces the word Invalid.

Can I convert seconds, or a date string?

No. Only milliseconds are accepted. To convert a seconds-based timestamp, multiply it by one thousand first, and for a date string use a date parsing tool instead.

Can I choose the output zone or format?

No. You get the local zone of the machine running the page and UTC, formatted by the browser locale for the first line and in HTTP style for the second. There is no ISO 8601 option and no custom pattern.

Free, online, and private

Free to use

Milliseconds to Date is completely free. There is no account to create, no login, and no hidden charge or usage limit.

Runs online in your browser

It is a free online tool that runs entirely in your browser. Nothing to download or install — open the page and start using it right away.

Your data stays private

All processing happens locally on your device. Your input is never uploaded, stored, or tracked, so it never leaves your browser.

How Milliseconds to Date behaves in detail

These are the specifics of this implementation — the exact ranges, defaults and fixed settings you are working with.

Parameter Value
Input one number field labelled Milliseconds, seeded with the epoch value at the moment the page itself was built
Output two lines - a Local line formatted by the browser locale and a UTC line in the RFC 7231 style used by HTTP
Range any value the JavaScript Date type accepts, roughly eight point six four times ten to the fifteenth milliseconds either side of the epoch
Out of range a value beyond that window produces the single word Invalid
Non-numeric a value that does not parse as a number is read as zero, so it silently reports the epoch instead of failing
Zero entering zero gives the first of January 1970, with the Local line shifted by the time zone of the machine

Compiled from the implementation of this tool and checked against it by itoolnet.

What Milliseconds to Date does not do

Knowing the edges of a tool saves more time than another list of its features. These are the cases where it will not do what you might expect.

  • The seeded default is a build-time value, not the current time. The field is filled with the epoch milliseconds at the moment the site was generated, so it falls further behind the present every day and has to be replaced by hand before it means now.
  • Bad input is not reported. A value that cannot be parsed is coerced to zero and reports 1970 rather than raising an error, the same happens when the field is left empty, and only a value outside the Date range produces the word Invalid - so a typo looks like a very old date rather than a mistake.
  • There is no offset field, no alternative input and no control over the format. Only milliseconds are accepted, not seconds or a date string; the two output zones are fixed at local and UTC with no way to name another; and the result cannot be emitted as ISO 8601 or in a pattern of your own.

Tested and documented by itoolnet, the team that builds and maintains this site.

Share & embed this tool

Writing a guide or article? You are welcome to link to Milliseconds to Date with the snippet below. It is free, runs entirely in your browser, and needs no signup.