Epoch to date

Paste an epoch value to see it as a calendar date in UTC and in the time zone you choose, with the exact UTC offset at that moment.

Nowreading device clock…
Unix number in any unit, ISO 8601, RFC 2822, Excel serial, FILETIME, UUID, ULID or Snowflake.
Unit
IANA zone; type to search, e.g. Kolkata, Paris.
Precision and rounding
  • Note: Unit auto-detected as seconds from 10 integer digits.
Same digits in other units
Other formats this number could be (4)
UTCUTC+00:00
2001-09-09 Sun
01:46:40
UTCUTC+00:00
2001-09-09 Sun
01:46:40

Read as Unix seconds (unit auto-detected) high confidence

Precision check: exact vs JavaScript Number and Date
Exact (BigInt)
1 000 000 000 000 000 000 ns
Number(input)
1000000000 (no loss)
new Date(ms)
no loss
Unix epoch
Unix seconds1000000000Exact; fraction shown when present
Unix seconds (integer, floor)1000000000
Unix milliseconds1000000000000
Unix microseconds1000000000000000
Unix nanoseconds1000000000000000000
Unix seconds (hex)0x3B9ACA00
Standard date formats
ISO 8601 (UTC)2001-09-09T01:46:40Z
RFC 3339 (UTC)2001-09-09T01:46:40+00:00
RFC 9557 (offset + zone)2001-09-09T01:46:40+00:00[UTC]
RFC 2822 (UTC)Sun, 09 Sep 2001 01:46:40 +0000
HTTP-date (IMF-fixdate)Sun, 09 Sep 2001 01:46:40 GMTAlways GMT; whole seconds
SQL TIMESTAMP (UTC)2001-09-09 01:46:40Microsecond precision max (PostgreSQL/MySQL)
SQL TIMESTAMP (UTC wall time)2001-09-09 01:46:40No zone stored: ambiguous without context
PostgreSQL timestamptz literal2001-09-09 01:46:40+00:00
ISO week date (UTC)2001-W36-7
Ordinal date (UTC)2001-252
Readable (UTC)Sunday, 9 September 2001, 01:46:40 UTCCanonical English; not locale-dependent
Platform and system epochs
JavaScript new Date(ms)new Date(1000000000000)
Java InstantInstant.ofEpochSecond(1000000000L, 0L)Nanosecond precision
Python datetime (UTC)datetime(2001, 9, 9, 1, 46, 40, 0, tzinfo=timezone.utc)Microsecond precision
.NET DateTime ticks631355968000000000100-ns ticks since 0001-01-01 (DateTime.Ticks with Kind=Utc).
Windows FILETIME / LDAP126444736000000000100-ns intervals since 1601 UTC. Active Directory lastLogon, pwdLastSet, accountExpires.
Chrome / WebKit time12644473600000000Microseconds since 1601 UTC (Chrome history, cookies).
Apple Cocoa / Core Data21692800NSDate timeIntervalSinceReferenceDate, Core Data, iOS/macOS plists.
Mac HFS+ seconds3082844800Classic Mac OS / HFS+ volume dates (seconds since 1904).
NTP seconds (era 0)3208988800NTP era 0 wraps on 2036-02-07; era numbers are not encoded in the 32-bit field.
Excel serial 1900 (UTC wall time) rounded37143.0740740741Days since 1900-01-00 with the Lotus 1-2-3 leap-year bug (serial 60 = fictitious 1900-02-29). No time zone.
Excel serial 1904 (UTC wall time) rounded35681.0740740741Older Mac Excel workbooks. Days since 1904-01-01. No time zone.
Julian Date rounded2452161.574074074Days since noon UT, 24 Nov 4714 BC. Computed from UTC, so it ignores the UT1/TT distinction.
Modified Julian Date rounded52161.074074074JD - 2400000.5. Computed from UTC.
GPS seconds684035213Seconds since the GPS epoch, counting leap seconds (GPS = TAI - 19 s). Uses the bundled leap-second table.
TAI (TAI-UTC = 32 s)2001-09-09T01:47:12 TAIFrom the bundled leap-second table
ID range bounds
Smallest UUIDv7 at this ms00e8d4a5-1000-7000-8000-000000000000Use as a range-query lower bound
Smallest ULID at this ms00X3AAA4000000000000000000
Smallest Twitter / X Snowflake n/aNot representableBefore this service's epoch
Smallest Discord Snowflake n/aNot representableBefore this service's epoch
Smallest MongoDB ObjectId3b9aca000000000000000000
Settings and local data

Storage: checking…

Reading the result

The left panel shows the instant in UTC and the right panel shows the same instant in your selected time zone. The zone panel includes the zone abbreviation and the numeric UTC offset in effect at that instant. Offsets change with daylight saving time and with government decisions: Kolkata has used +05:30 since 1945, while New York alternates between -05:00 and -04:00 every year.

Below the panels, the readable line spells out the weekday and month in English so it stays stable across browsers. The localised line uses your browser's language settings. Use it for display only, because a localised string is not safe to parse back.

Examples to try

Dates before 1970

Negative epoch values count backwards from 1970. For example, -1 is 1969-12-31T23:59:59Z and -14182940 is the Apollo 11 landing on 20 July 1969. The arithmetic floors toward the earlier instant, so -0.5 seconds is 23:59:59.5 on the previous day, not 00:00:00. Some languages truncate toward zero instead and get this wrong.

Questions

Why is my converted date in January 1970?
You probably passed seconds to an API that expects milliseconds, such as JavaScript's new Date(). Multiply by 1000, or check the unit selector here.
Which time zone is used?
Your browser's zone is selected by default and you can change it. UTC is always shown alongside it. Zone rules come from the IANA database bundled with your browser.
Does the converter handle negative timestamps?
Yes. Negative values are exact and use the proleptic Gregorian calendar for dates before 1582.