Epoch Milliseconds Converter

Enter a millisecond timestamp or a UTC date and pick a direction to convert.

How it is calculated

Two directions are offered. Milliseconds to date: the number is rounded to a whole value, divided by 1000 (whole seconds, so milliseconds are dropped from the display) and shown as YYYY-MM-DD HH:MM:SS UTC, counted from 1970-01-01 00:00:00 UTC. Negative values give dates before 1970. Date to milliseconds: the text you enter is read as a UTC date and time (for example 2026-03-15 12:30:00, or just a date, which means midnight UTC) and ms = seconds × 1000. Both directions also show the seconds epoch. No time zone conversion happens: all times are UTC, so a local time must be converted to UTC before you type it. The result does not depend on today's date, and the example date here is just a fixed illustration.

Worked example

Take the millisecond value 1773577800000 from an API response. Divide by 1000 to get 1,773,577,800 seconds since 1 January 1970. Counting forward gives the UTC date 2026-03-15 12:30:00 UTC. Going the other way, entering 2026-03-15 12:30:00 as a date gives 1,773,577,800,000 ms, and 1,773,577,800 s. Entering just 2026-03-15 gives midnight UTC, 1,773,532,800,000 ms, which is 12 hours and 30 minutes (45,000 seconds) earlier.

Try this example →

Common mistakes

  • Pasting a seconds timestamp (10 digits) into the milliseconds direction. The tool treats it as milliseconds, so 1773577800 shows 1970-01-21 instead of 2026-03-15.
  • Forgetting that the result is in UTC. A time such as 12:30 UTC is 15:30 in Istanbul (UTC+3), so a local clock reading will differ.
  • Typing a local time into the date direction without converting it first. The tool will treat it as UTC and the millisecond value will be off by your offset.
  • Expecting millisecond digits in the output. The date is shown to the second, so 1773577800123 and 1773577800000 display the same date and time.
  • Using day-first or month-first formats such as 15/03/2026. Use the year-first style 2026-03-15 12:30:00, since other layouts may be read differently or fail.

About this calculator

The Unix epoch is the reference point January 1, 1970, 00:00:00 UTC, and most systems count elapsed time since then in seconds — but JavaScript’s Date object (and by extension, browser APIs, Node.js, and many web-facing JSON payloads) counts in milliseconds instead, returned by calls like Date.now() and getTime(). This converter takes a millisecond timestamp and converts it to a readable UTC date, or takes a UTC date and converts it back to milliseconds, also showing the equivalent seconds-based epoch value that most other languages and Unix tools expect.

This conversion comes up constantly in web development and API debugging: a log entry or database record might store a millisecond epoch while a backend service or CLI tool expects seconds, and mixing the two up by a factor of 1000 is a common source of “why is this timestamp showing the year 48,000-something” bugs. Developers reach for this converter to quickly sanity-check a raw timestamp value from an API response, browser console, or log file.

Was this helpful?

You can pick up to 3 reactions.

Comments (1)

  • Editorial team

    Before pasting a timestamp, count its digits. A 13-digit number is almost certainly milliseconds, while a 10-digit one is seconds, and this tool reads whatever you type in the first box as milliseconds. When a log line and an API response disagree by exactly a factor of 1000, that is usually the cause. What other timestamp formats, such as microseconds or ISO strings, do you run into most often when debugging?

Popular calculators

All Calculators