const epoch = 1717027200;
// From seconds โ multiply by 1000const date = newDate(epoch * 1000);
console.log(date.toISOString()); // 2024-05-30T08:00:00.000Z
console.log(date.toLocaleString()); // Local time string
console.log(date.toUTCString()); // UTC string
๐
Date string to epoch
Parse any date string to a Unix timestamp
// Any parseable date string โ epoch (seconds)consttoEpoch = (dateStr) =>
Math.floor(newDate(dateStr).getTime() / 1000);
toEpoch('2024-05-30'); // 1717027200toEpoch('2024-05-30T14:30:00Z'); // 1717079400toEpoch('May 30 2024 09:00:00'); // local time
๐
Format with timezone (Intl API)
Display a timestamp in any timezone
const epoch = 1717027200;
const date = newDate(epoch * 1000);
const fmt = newIntl.DateTimeFormat('en-US', {
timeZone: 'America/New_York',
dateStyle: 'full',
timeStyle: 'long',
});
console.log(fmt.format(date));
// Thursday, May 30, 2024 at 4:00:00 AM EDT
from datetime import datetime, timezone
epoch = 1717027200# Epoch โ UTC datetime
dt_utc = datetime.fromtimestamp(epoch, tz=timezone.utc)
print(dt_utc.isoformat()) # 2024-05-30T08:00:00+00:00# Epoch โ local datetime
dt_local = datetime.fromtimestamp(epoch)
# datetime โ epoch
back = int(dt_utc.timestamp()) # 1717027200
๐
Timezone conversion with zoneinfo
Python 3.9+ built-in
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
epoch = 1717027200
dt = datetime.fromtimestamp(epoch, tz=timezone.utc)
# Convert to any timezone
ny = dt.astimezone(ZoneInfo("America/New_York"))
tok = dt.astimezone(ZoneInfo("Asia/Tokyo"))
print(ny.strftime("%Y-%m-%d %H:%M:%S %Z"))
๐
Parse date strings to epoch
Multiple formats
from datetime import datetime, timezone
import time
# ISO 8601 โ epoch
dt = datetime.fromisoformat("2024-05-30T08:00:00+00:00")
epoch = int(dt.timestamp()) # 1717027200# Custom format โ epoch
dt2 = datetime.strptime("30/05/2024 08:00", "%d/%m/%Y %H:%M")
dt2 = dt2.replace(tzinfo=timezone.utc)
epoch2 = int(dt2.timestamp())
// Epoch โ DateTimeOffsetvar dto = DateTimeOffset.FromUnixTimeSeconds(1717027200);
Console.WriteLine(dto.ToString("o")); // ISO 8601// Convert to a specific timezonevar tz = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var local = TimeZoneInfo.ConvertTime(dto, tz);
// DateTimeOffset โ epochlong back = dto.ToUnixTimeSeconds();
# Epoch โ Time
t = Time.at(1717027200).utc
puts t.strftime("%Y-%m-%d %H:%M:%S %Z")
# 2024-05-30 08:00:00 UTC# With timezone (requires tzinfo gem)require'tzinfo'
tz = TZInfo::Timezone.get('America/New_York')
local = tz.utc_to_local(t)
# Time โ epoch
back = t.to_i
Bash / Shell โ Epoch Timestamps
โฑ
Get current epoch
# Linux / GNU date
date +%s
# macOS / BSD date
date -j +%s
# Portable (Python fallback)
python3 -c "import time; print(int(time.time()))"
๐
Epoch โ human date
# Linux
date -d @1717027200
date -d @1717027200 +"%Y-%m-%d %H:%M:%S"# macOS
date -r 1717027200
date -r 1717027200 +"%Y-%m-%d %H:%M:%S"# With timezone
TZ="America/New_York" date -d @1717027200
๐
Date string โ epoch
# Linux
date -d "2024-05-30 08:00:00 UTC" +%s
# macOS
date -j -f "%Y-%m-%d %H:%M:%S""2024-05-30 08:00:00" +%s
# Store in variable
EPOCH=$(date -d "2024-05-30" +%s)
echo $EPOCH
SQL โ Epoch Timestamps
๐
PostgreSQL
-- Current epoch (seconds)SELECT EXTRACT(EPOCH FROM NOW())::BIGINT;
-- Epoch โ timestampSELECT TO_TIMESTAMP(1717027200);
SELECT TO_TIMESTAMP(1717027200) AT TIME ZONE 'America/New_York';
-- Timestamp column โ epochSELECT EXTRACT(EPOCH FROM created_at)::BIGINTFROM orders;
-- Date range using epochsSELECT * FROM events
WHERE EXTRACT(EPOCH FROM created_at) BETWEEN1717027200AND1717113600;
import java.time.*
// Epoch โ ZonedDateTimeval instant = Instant.ofEpochSecond(1717027200L)
val utc = instant.atZone(ZoneOffset.UTC)
val ny = instant.atZone(ZoneId.of("America/New_York"))
println(utc.toString()) // 2024-05-30T08:00Z// ZonedDateTime โ epochval back = utc.toEpochSecond()
Unix Timestamp Code Examples
These code snippets cover the most common Unix timestamp operations in every major programming language: getting the current epoch, converting epoch to datetime, parsing date strings to epoch, and timezone-aware conversions. All snippets use standard library functions โ no external dependencies required (except where noted).
The safest examples create UTC-aware values before formatting. Avoid naive datetime objects in backend code unless the surrounding framework clearly documents the timezone assumption.
Document field units in code
Copying a snippet is only the first step. Rename variables and database columns so the unit is visible: epochSeconds, createdAtMs, expires_at_unix_seconds, or scheduled_at_iso. Clear names prevent client bugs.