Unix Timestamp Converter (Epoch to Date)
Paste any timestamp — seconds, milliseconds, microseconds or nanoseconds, with or without separators, or a date string — and the unit is detected automatically. Convert to readable dates in any timezone and back, with ISO 8601 and RFC 2822 output.
Timestamp → Human Date
Auto-detected as Seconds (10 digits).
Human Date → Timestamp
Seconds in Common Durations
Unix time ignores leap seconds: every day is exactly 86,400 seconds.
Quick Answer & Key Epoch Formulas
Direct Answer: A Unix timestamp counts the seconds since 1970-01-01 00:00:00 UTC. To get the date, add that many seconds to the epoch: days = ⌊t ÷ 86,400⌋. To get a timestamp in code, use Math.floor(Date.now() / 1000) in JavaScript or date +%s in a shell. 10-digit values are seconds; 13-digit values are milliseconds.
Understanding Unix Time & Conversion Math
Unix time (POSIX time) is a single integer that counts seconds elapsed since the Unix epoch, midnight UTC on 1 January 1970. Because it has no timezone and no daylight-saving rules, it is the standard way to store and compare instants in databases, logs, APIs and file systems.
1. Timestamp to Date (epoch → UTC)
Split the timestamp into whole days and leftover seconds, then count the days forward from 1 January 1970:
Example: 1,700,000,000 ÷ 86,400 = 19,675 days + 80,000 s (22:13:20) → 2023-11-14 22:13:20 UTC.
2. Date to Timestamp (UTC → epoch)
Count the days since 1970-01-01, convert to seconds, add the time of day and subtract the timezone's UTC offset:
Example: 2026-01-01 00:00 UTC is 20,454 days × 86,400 = 1,767,225,600.
Seconds or Milliseconds? Count the Digits
For present-day dates, 10 digits means seconds and 13 digits means milliseconds (16 = microseconds, 19 = nanoseconds). JavaScript and Java use milliseconds; Unix shells, PHP and Python's time.time() use seconds:
1767225600 (10 digits) and 1767225600000 (13 digits) are the same instant: 2026-01-01 00:00 UTC.
Notable Unix Timestamps
| Timestamp | UTC Date & Time | Significance |
|---|---|---|
| −2,208,988,800 | 1900-01-01 00:00:00 | NTP epoch — a negative Unix time |
| 0 | 1970-01-01 00:00:00 | The Unix epoch |
| 1,000,000,000 | 2001-09-09 01:46:40 | The Unix "billennium" |
| 1,234,567,890 | 2009-02-13 23:31:30 | Sequential digits celebrated by developers |
| 1,700,000,000 | 2023-11-14 22:13:20 | 1.7 billion seconds |
| 2,000,000,000 | 2033-05-18 03:33:20 | Two billion seconds |
| 2,147,483,647 | 2038-01-19 03:14:07 | Signed 32-bit maximum (Year 2038 problem) |
Frequently Asked Questions
What is a Unix timestamp?
A Unix timestamp is the number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970, not counting leap seconds. It is timezone-independent, so the same instant has the same timestamp everywhere.
Does Unix time count leap seconds?
No. Unix time treats every day as exactly 86,400 seconds. When a leap second occurs, the clock repeats or smears a second, so Unix time stays aligned with UTC dates.
What is the Year 2038 problem?
Systems that store time in a signed 32-bit integer can count only up to 2,147,483,647, which is 03:14:07 UTC on 19 January 2038. One second later the value overflows to a date in 1901. Modern 64-bit systems are not affected.
How do I get the current Unix timestamp in code?
JavaScript: Math.floor(Date.now() / 1000). Python: int(time.time()). PHP: time(). Bash: date +%s. SQL (PostgreSQL): EXTRACT(EPOCH FROM NOW()).
How does the converter know if a timestamp is in seconds or milliseconds?
It looks at the magnitude: for dates between 1973 and 5138, seconds have 9–11 digits, milliseconds 12–14, microseconds 15–17 and nanoseconds 18 or more. Separators such as 1,767,225,600, a unit suffix like ms, or a date string such as 2026-01-01T00:00:00Z are also understood, and you can override the unit manually.