Password Generator
Cryptographically random passwords with a live entropy meter.
Utilities & Converters
Epoch seconds and milliseconds to dates, in any zone.
Unix time is seconds. JavaScript’s Date.now() returns milliseconds. Most other languages return seconds.
The tell is length: a current timestamp in seconds is 10 digits, in milliseconds 13. Passing milliseconds to something expecting seconds produces a date around the year 55,000 — which is at least obviously wrong.
The dangerous direction is the other one. Passing seconds where milliseconds are expected gives a date in January 1970, which looks like a missing value rather than a unit error and is often silently treated as one.
It is arbitrary. Unix engineers chose the start of 1970 as a convenient recent epoch when the convention was established in the early 1970s.
Other systems chose differently: Windows file times count 100-nanosecond intervals from 1601, and several databases use their own epochs.
That is why timestamps are not portable between systems without knowing the epoch and the unit. A raw integer is meaningless without both.
A signed 32-bit integer holding seconds overflows on 19 January 2038, wrapping to a negative number and producing a date in 1901.
This is not hypothetical — it is the same class of bug as Y2K, and it affects embedded systems, older file formats and any code still using a 32-bit time_t.
Modern 64-bit systems are unaffected for a period longer than the age of the universe. The remaining exposure is in embedded devices, long-lived file formats and databases with 32-bit timestamp columns, which is a real and unglamorous migration still under way.
Count the digits. A current timestamp is 10 digits in seconds and 13 in milliseconds. JavaScript uses milliseconds; most other languages use seconds.
Seconds were passed where milliseconds were expected. That is the dangerous direction, because a 1970 date looks like a missing value rather than a unit error and often gets treated as one.
It is arbitrary — a convenient recent epoch when the convention was set in the early 1970s. Windows file times count from 1601, and several databases use their own epochs.
A signed 32-bit seconds counter overflows on 19 January 2038 and wraps to 1901. 64-bit systems are unaffected; the remaining exposure is embedded devices, old file formats and 32-bit database columns.
No. Unix time is always UTC — it is a count of seconds, not a local time. The zone is applied only when you format it for display.