Timestamp Converter

Convert Unix timestamps to human-readable dates and vice versa. Support for seconds and milliseconds. View in UTC and local time.

Unix timestamps are the universal language of time in computing. Instead of representing dates as human-readable strings (which vary by locale, timezone, and format), a Unix timestamp is simply an integer — the number of seconds elapsed since midnight on January 1, 1970 UTC. This makes timestamps unambiguous, timezone-independent, and easy to store, compare, and sort.

You will encounter Unix timestamps everywhere: API responses that return expiration times (like the JWT "exp" claim), database records with created_at and updated_at columns, log files with epoch-based timestamps, HTTP headers like Last-Modified and Expires, and event tracking systems. Reading these timestamps requires converting them to human-readable dates, which is what this tool does instantly.

Two formats are common: seconds-precision (10-digit numbers, used by most Unix systems and many APIs) and milliseconds-precision (13-digit numbers, used by JavaScript's Date.now(), Java, and many web APIs). This tool auto-detects which format your input is in and converts accordingly. You can also convert in the other direction — pick a date and time to get the corresponding timestamp.

The tool shows the converted date in both your local timezone and UTC, so you can verify the result regardless of where you are. All conversion uses JavaScript's built-in Date object and runs entirely in your browser — no server involved.

Timestamp to Date

Date to Timestamp

Seconds, milliseconds, or microseconds?

The Unix epoch is almost always counted in seconds, but different ecosystems pick different resolutions. JavaScript Date.now() returns milliseconds. Most backend languages (Python, Go, Java) default to seconds for time.time()-style functions but expose milliseconds and microseconds separately. Chrome's trace format uses microseconds. When reading a log entry, the easiest way to tell which unit you have is to look at the digit count: 10 digits for seconds through 2286, 13 digits for milliseconds, 16 for microseconds.

Timezones are a separate concern

A Unix timestamp is always UTC — by definition, it counts seconds since the UTC epoch. Two servers in different timezones report the same timestamp for the same instant. The timezone only becomes relevant when you render the timestamp for a user. Always store timestamps in UTC; convert at the UI layer, using the user's timezone preference.

The Year 2038 problem

Systems that store timestamps in 32-bit signed integers roll over on January 19, 2038 at 03:14:07 UTC — the largest value a signed 32-bit integer can represent in seconds. Modern platforms use 64-bit time values, which push the problem out to year 292,277 million. Legacy embedded systems, however, still occasionally trip on this. If you see a date wrap to December 1901, you are looking at a 32-bit overflow.

JWT expiration: a common use case

JWT exp claims are stored as Unix timestamps in seconds. When a token looks expired but "should" be valid, dropping the exp value into this tool is the fastest way to confirm the actual expiry date. Combine with the JWT Decoder to pull the value out of a token in one step.

Frequently Asked Questions