Unix Timestamp & Epoch Converter
Convert between Unix timestamps and human-readable dates. Copy-paste Python, JavaScript, and Pandas code snippets below.
Current Unix Timestamp (seconds)
1782011985
Python Code Snippets
Unix timestamp → datetime (stdlib)
import datetime
# Seconds since epoch → UTC datetime
ts = 1700000000
dt_utc = datetime.datetime.utcfromtimestamp(ts)
print(dt_utc) # 2023-11-14 22:13:20
# With timezone awareness (recommended)
dt_aware = datetime.datetime.fromtimestamp(ts, tz=datetime.timezone.utc)
print(dt_aware.isoformat()) # 2023-11-14T22:13:20+00:00
datetime → Unix timestamp
import datetime
dt = datetime.datetime(2024, 1, 15, 12, 0, 0, tzinfo=datetime.timezone.utc)
unix_ts = int(dt.timestamp())
print(unix_ts) # 1705320000
# From string
dt = datetime.datetime.strptime("2024-01-15 12:00:00", "%Y-%m-%d %H:%M:%S")
dt = dt.replace(tzinfo=datetime.timezone.utc)
print(int(dt.timestamp()))
Pandas: column of Unix timestamps → datetime
import pandas as pd
df = pd.DataFrame({"ts": [1700000000, 1705320000, 1710000000]})
# Seconds
df["datetime"] = pd.to_datetime(df["ts"], unit="s", utc=True)
# Milliseconds
df["datetime_ms"] = pd.to_datetime(df["ts_ms"], unit="ms", utc=True)
# Convert to a specific timezone
df["datetime_chile"] = df["datetime"].dt.tz_convert("America/Santiago")
print(df.head())
Pandas: datetime column → Unix timestamp
import pandas as pd
df = pd.DataFrame({"date": pd.to_datetime(["2024-01-15", "2024-03-01"])})
df["date"] = df["date"].dt.tz_localize("UTC") # make tz-aware first
df["unix"] = df["date"].astype("int64") // 10**9 # nanoseconds → seconds
print(df)
JavaScript Code Snippets
Unix → Date object
const ts = 1700000000;
// JS uses milliseconds
const date = new Date(ts * 1000);
console.log(date.toISOString()); // "2023-11-14T22:13:20.000Z"
console.log(date.toUTCString()); // "Tue, 14 Nov 2023 22:13:20 GMT"
console.log(date.toLocaleString()); // locale-specific
Date → Unix timestamp
const date = new Date("2024-01-15T12:00:00Z");
const unixSeconds = Math.floor(date.getTime() / 1000);
console.log(unixSeconds); // 1705320000
// Current timestamp
const nowUnix = Math.floor(Date.now() / 1000);
SQL Snippets
PostgreSQL
-- Unix timestamp → timestamptz
SELECT to_timestamp(1700000000);
-- timestamptz → Unix
SELECT EXTRACT(EPOCH FROM NOW())::BIGINT;
-- Convert a column
SELECT to_timestamp(created_at_unix) AT TIME ZONE 'America/Santiago'
FROM events;
MySQL / MariaDB
-- Unix → datetime
SELECT FROM_UNIXTIME(1700000000);
-- datetime → Unix
SELECT UNIX_TIMESTAMP(NOW());