Tools / Developer / Timestamp Converter
Client-side

Timestamp Converter

Convert a Unix timestamp to a readable UTC date and ISO 8601 string, or a calendar date back to epoch seconds or milliseconds, with automatic unit detection.

What it does

  • Unix timestamp to date, and date to Unix timestamp
  • Auto-detects seconds or milliseconds, or set the unit yourself
  • Readable UTC date with weekday plus ISO 8601 output
  • Now button fills in the current epoch time
  • Runs locally with no upload required

Unix Timestamp → Date

Date → Unix Timestamp

This Unix timestamp converter turns epoch time into a date you can read, and turns a calendar date back into the number your API, database or log expects. Paste 1735689600 and you get "Wednesday, January 1, 2025 00:00:00 UTC" and 2025-01-01T00:00:00Z. Paste the 13-digit 1735689600000 and the tool recognizes milliseconds and gives the same instant. All conversions run in a Rust module compiled to WebAssembly in your browser.

How to convert a Unix timestamp to a date

  1. In the Unix Timestamp → Date panel, paste the timestamp, or click Now to fill in the current epoch time.
  2. Leave the unit on Auto, or choose Seconds or Milliseconds if you know which one you have.
  3. Click Convert. The result shows three lines: the readable date with the weekday in UTC, the ISO 8601 string, and the unit that was used.

How to convert a date to a Unix timestamp

  1. In the Date → Unix Timestamp panel, enter year, month, day, hour, minute and second. The values are read as UTC.
  2. Choose the output unit: Seconds (10 digits for current dates) or Milliseconds (13 digits).
  3. Click Convert to Unix, then copy the number with the copy button.

Dates are validated before conversion: month 13, February 30 or hour 24 return an error, and February 29 is only accepted in leap years.

Seconds or milliseconds: how auto-detection works

Unix time counts seconds since 00:00:00 UTC on January 1, 1970. Many languages and platforms count milliseconds instead, which multiplies the value by 1000.

SourceTypical unitExample
Unix shell date +%s, PHP time(), Python time.time() (integer part)Seconds1735689600
JavaScript Date.now(), Java System.currentTimeMillis()Milliseconds1735689600000
JWT exp, iat and nbf claimsSeconds1735689600

In Auto mode the converter treats any value of 10,000,000,000 or more (in absolute value) as milliseconds, and anything smaller as seconds. In practice that means 10-digit values are seconds and 13-digit values are milliseconds. Set the unit manually when the value is ambiguous, for example a millisecond timestamp from early 1970.

Details and edge cases

  • Output is always UTC: the result is not shifted to your local timezone. Add your offset yourself (UTC+1 in Paris in winter, UTC-5 in New York in winter), or compare with logs that are also in UTC.
  • Sub-second precision is dropped: a millisecond timestamp is shown to the second, and decimal input such as 1735689600.75 is truncated.
  • Negative timestamps work: -86400 is December 31, 1969. Useful for birth dates and historical records stored as epoch values.
  • The year 2038: signed 32-bit systems overflow after 2147483647 (January 19, 2038 03:14:07 UTC). The converter uses 64-bit integers, so 2147483648 converts normally to 03:14:08, which helps when testing for that bug.
  • Microseconds and nanoseconds: 16 and 19-digit values (from Python time.time_ns() or some databases) are not detected. Divide by 1,000 or 1,000,000 to get milliseconds first.
  • No leap seconds: like Unix time itself, the converter ignores leap seconds.

Common use cases

  • Reading logs: turn epoch values in application or server logs into dates to build an incident timeline.
  • Checking token expiry: a JWT exp claim of 1735689600 expired at midnight UTC on January 1, 2025.
  • Writing test data: produce the exact epoch value for a fixture or a database query such as WHERE created_at > 1735689600.
  • Debugging API responses: confirm whether a field holds seconds or milliseconds before a front end shows a date in January 1970 or tens of thousands of years in the future.

Compared with the command line

On Linux, date -d @1735689600 -u converts seconds to a date, while macOS uses date -r 1735689600 -u. Going the other way needs date -d "2025-01-01 00:00:00 UTC" +%s, and neither handles milliseconds without dividing first. Spreadsheet formulas work but differ between Excel and Google Sheets. This page gives both directions, both units and the ISO string in one place.

Why convert timestamps locally

Timestamps usually come out of event logs, audit trails and incident timelines, often pasted along with user IDs or request data. Here the conversion runs as WebAssembly in your tab: nothing you paste is sent to a server or stored, and the page works offline once loaded.

Frequently asked questions

What is a Unix timestamp?
The number of seconds elapsed since January 1, 1970 at 00:00:00 UTC, also called epoch time or POSIX time. It is timezone-independent, which is why systems use it to store moments in time.
How do I know if my timestamp is in seconds or milliseconds?
Count the digits. For current dates, 10 digits means seconds and 13 digits means milliseconds. Auto mode applies the same rule.
Why does my converted date show 1970?
A seconds value was probably read as milliseconds, for example passed straight to JavaScript new Date(), which expects milliseconds. Convert it here with Auto, then multiply by 1000 in your code if the source uses seconds.
Is the result in my local time?
No, the result is always UTC. That matches how timestamps are stored, and avoids daylight saving surprises.
Can I convert dates before 1970?
Yes. Earlier dates give negative timestamps, and negative timestamps convert back to dates before 1970.
What is the current Unix timestamp?
Click Now: the field fills with the current epoch time from your device clock, in seconds or milliseconds depending on the selected unit.
Are my timestamps uploaded?
No. Both conversions run in your browser via WebAssembly.

Related tools: to see the exp and iat values of a token before converting them, open it in the JWT decoder. The cron expression parser explains the schedule behind recurring jobs that appear in your logs, and the JSON formatter makes API responses full of epoch fields easier to read.