formaterTools Logo Formater Tools

Epoch Timestamp to Date Converter

Convert Unix epoch timestamps to human-readable dates instantly. Supports seconds and milliseconds.

Current Unix Epoch Time

1768448987

Updates every second

Current Time (UTC):

--:--:-- UTC

Local Time:

--:--:-- --

Epoch to Date

Seconds or milliseconds

Results

GMT/UTC

Local Time

More Formats

ISO Format

UTC Components

Date to Epoch

How to Use

  1. Enter a Unix timestamp (seconds or milliseconds)
  2. Click "Convert" to get results
  3. View GMT and local time automatically
  4. Use reverse converter for date to epoch

About Unix Epoch

  • Starts: January 1, 1970 UTC
  • Uses seconds or milliseconds
  • Universal time standard
  • Current:

How Seconds-vs-Milliseconds Auto-Detection Actually Works

This tool decides whether your pasted number is seconds or milliseconds using one rule: if the number is below 10,000,000,000 it's treated as seconds and multiplied by 1000; otherwise it's treated as already being in milliseconds. That threshold corresponds to roughly the year 2286, so it correctly auto-detects any realistic second-based Unix timestamp for the next 260 years. Where it can misfire is timestamps very close to the epoch itself โ€” a millisecond value like 5000000 (which is January 1, 1970, 01:23:20 UTC) is numerically small enough to be mistaken for a seconds value and get multiplied by 1000, producing a wrong date years later than intended. In practice this only affects timestamps from the first few months of 1970, which almost never show up in real logs or APIs.

What Counts as an "Out of Range" Timestamp Here

โœ— Negative timestamps are rejected outright: Unix time technically supports negative values to represent dates before January 1, 1970, but this tool explicitly throws an error for any timestamp below zero โ€” it can't convert pre-1970 dates.
โœ— Timestamps past the year 2100 are also rejected: the upper bound is hard-coded to 4102444800000 ms (January 1, 2100 UTC), so far-future test timestamps (e.g. simulating a token expiry decades out) will be flagged as out of range rather than converted.
โœ“ The UTC Components breakdown is always UTC, never local: the "More Formats" panel's year/month/day/hour/day-of-week fields are computed with getUTC*() methods regardless of your browser's timezone โ€” check the separate "Local Time" box if you need your machine's local reading instead.
โœ“ Reverse conversion assumes your browser's local timezone: the "Date to Epoch" field is an HTML datetime-local input with no timezone selector, so the value you type is interpreted in whatever timezone your OS/browser is set to โ€” if you need a specific UTC instant, calculate the local-time equivalent first (or use the current-time display at the top to check your offset).

Where This Fits a Real Debugging Workflow

  • Reading raw created_at/exp integer fields straight out of a JSON API response or a JWT payload without writing a script
  • Checking whether a log line's timestamp column is in seconds (10 digits, common in syslog/Unix tools) or milliseconds (13 digits, common in JavaScript's Date.now() and many JSON logs) by pasting it and reading the resulting date
  • Converting a specific local appointment or deadline into the epoch integer a cron job, database query, or API test payload expects
  • Sanity-checking a session or token expiry timestamp against the live "Current Unix Epoch Time" counter at the top of the page to see at a glance whether it's already in the past

Frequently Asked Questions

How can I tell if my timestamp is seconds or milliseconds just by looking at it?

Seconds-based Unix timestamps for dates in the 2000s-2030s are 10 digits long (e.g. 1705353600); millisecond timestamps for the same range are 13 digits (e.g. 1705353600000). This tool applies that same digit-count logic automatically via the 10,000,000,000 threshold.

Why did I get "Timestamp appears to be out of valid range"?

Either the value is negative (representing a date before 1970, which this tool doesn't support) or it resolves to a date after January 1, 2100. Double-check whether you accidentally pasted a value with extra digits, which can push a normal timestamp far outside that window.

The GMT and Local outputs show different clock times but the same moment โ€” is that a bug?

No โ€” that's expected. Both boxes represent the identical instant in time, just formatted for two different timezones. The GMT/UTC box always reads the same value worldwide; the Local box reflects whatever timezone your device is currently set to.

If I type a date into "Date to Epoch," what timezone does it assume?

Your browser/OS's local timezone โ€” there's no separate timezone picker on the reverse converter. If you need the epoch value for a specific UTC time, convert that UTC time to your local equivalent first (the current-time display at the top of the page shows your current UTC offset).