What Is a Unix Timestamp? Epoch Time Explained + Free Converter (2026)
A Unix timestamp (also called an epoch timestamp) is the number of seconds elapsed since January 1, 1970 at 00:00:00 UTC — a reference point known as the Unix epoch. If you've ever seen a number like 1709251200 in an API response, a database field, or a log file, you're looking at a Unix timestamp. This guide explains what these numbers mean, how to convert them online, and how to convert them in code.
What Is a Unix Timestamp?
Unix timestamps represent time as a single integer — the number of seconds since January 1, 1970 00:00:00 UTC (Coordinated Universal Time). This makes timezone math simple: a timestamp is always in UTC, so you add or subtract your local offset to display local time.
Key facts to know:
- 10-digit timestamps (seconds): e.g.,
1709251200= March 1, 2024 00:00:00 UTC - 13-digit timestamps (milliseconds): e.g.,
1709251200000— same moment, higher precision - The Unix epoch = January 1, 1970 00:00:00 UTC (timestamp:
0) - Maximum 32-bit timestamp: January 19, 2038 — the Year 2038 Problem for legacy systems using signed 32-bit integers
Convert a Unix Timestamp to a Date Online
The fastest way to convert a Unix timestamp to a human-readable date is to use the Unix Timestamp Converter. Paste any timestamp, and you get the date in your local timezone instantly. It automatically detects whether your timestamp is in seconds or milliseconds based on the number of digits.
Convert Unix Timestamp to Date in JavaScript
JavaScript's Date constructor accepts millisecond timestamps:
// Convert Unix timestamp (seconds) to Date
const timestamp = 1709251200;
const date = new Date(timestamp * 1000); // Multiply by 1000 for milliseconds
console.log(date.toISOString()); // "2024-03-01T00:00:00.000Z"
console.log(date.toLocaleString()); // Local time string (timezone-aware)
// Format with Intl.DateTimeFormat
const formatter = new Intl.DateTimeFormat('en-US', {
year: 'numeric', month: 'long', day: 'numeric',
hour: '2-digit', minute: '2-digit', timeZoneName: 'short'
});
console.log(formatter.format(date)); // "March 1, 2024 at 12:00 AM UTC"
If your timestamp is already in milliseconds (13 digits), skip the multiplication: new Date(timestamp).
Convert Unix Timestamp to Date in Python
from datetime import datetime, timezone
# Convert seconds timestamp to UTC datetime
timestamp = 1709251200
dt = datetime.fromtimestamp(timestamp, tz=timezone.utc)
print(dt.isoformat()) # 2024-03-01T00:00:00+00:00
# Convert to local time
dt_local = datetime.fromtimestamp(timestamp)
print(dt_local) # Local time
# Python 3.9+: Use zoneinfo for named timezones
from zoneinfo import ZoneInfo
dt_ny = datetime.fromtimestamp(timestamp, tz=ZoneInfo("America/New_York"))
print(dt_ny) # 2024-02-29T19:00:00-05:00
# For millisecond timestamps:
ms_timestamp = 1709251200000
dt = datetime.fromtimestamp(ms_timestamp / 1000, tz=timezone.utc)
Get the Current Unix Timestamp
| Language | Seconds | Milliseconds |
|---|---|---|
| JavaScript | Math.floor(Date.now() / 1000) | Date.now() |
| Python | import time; int(time.time()) | int(time.time() * 1000) |
| Go | time.Now().Unix() | time.Now().UnixMilli() |
| Bash/Shell | date +%s | date +%s%3N |
| PostgreSQL | EXTRACT(EPOCH FROM NOW())::INT | EXTRACT(EPOCH FROM NOW()) * 1000 |
Reference: Common Unix Timestamps
| Date | Unix Timestamp (seconds) |
|---|---|
| Unix Epoch (Jan 1, 1970 UTC) | 0 |
| Y2K (Jan 1, 2000 UTC) | 946684800 |
| Jan 1, 2020 UTC | 1577836800 |
| Jan 1, 2024 UTC | 1704067200 |
| Jan 1, 2025 UTC | 1735689600 |
| Jan 1, 2026 UTC | 1767225600 |
| Year 2038 Problem (32-bit max) | 2147483647 |
Seconds vs. Milliseconds: How to Tell Which Format You Have
A reliable heuristic: count the digits.
- 10 digits = seconds (currently around
1760000000) - 13 digits = milliseconds (currently around
1760000000000)
JavaScript's Date.now() returns milliseconds. Python's time.time() returns seconds (as a float). Most Unix system timestamps and database timestamps use seconds.
Why "Epoch" and "Unix Timestamp" Mean the Same Thing
The terms are used interchangeably in documentation and APIs:
- Unix timestamp — terminology used in Unix/Linux documentation
- Epoch time or epoch timestamp — emphasizes the counting-from-a-fixed-point nature
- POSIX time — the formal specification (IEEE Std 1003.1)
All three refer to the same value: seconds elapsed since January 1, 1970 00:00:00 UTC.
Free Unix Timestamp Converter
The Unix Timestamp Converter on UtilDaily converts any epoch timestamp to a readable date instantly. It handles both seconds and milliseconds, shows your local timezone, and displays the current Unix timestamp live. No sign-up required — runs entirely in your browser with no data uploaded.
- Unix Timestamp Converter — Convert dates to timestamps and vice versa
- Age Calculator — Calculate exact time elapsed between two dates
- Work Day Calculator — Count business days between two dates