What is the Unix epoch? Why computers count seconds from January 1, 1970
Unix timestamps are the simplest way to store and compare wall-clock points in time across systems. They're timezone-agnostic and supported by every programming language and database, but wall clocks can jump forward or backward when they are synchronized. Use a monotonic clock for elapsed-time measurements, then display Unix timestamps in the user's local timezone.
Timestamp 0 in Unix time is 00:00:00 UTC on January 1, 1970, the Unix epoch. Every Unix timestamp is the number of seconds that have elapsed since that moment, not counting leap seconds. It's a beautifully simple system: one integer represents any point in time, timezone-independent, sortable, and mathematically trivial to compare.
By TechCompare · Updated
How this is calculated
Unix time counts seconds from 00:00:00 UTC on January 1, 1970. The published definition sets that epoch but doesn't establish that it was chosen to fit a 32-bit signed integer. The 2038 limit is a later consequence of storing Unix seconds in a signed 32-bit value, which overflows at 2,147,483,647 seconds after the epoch. Modern systems use wider timestamps to avoid that limit.
Verdict
Unix time counts seconds from January 1, 1970, and POSIX defines days as exactly 86,400 seconds while ignoring leap seconds. The documented definition doesn't establish that the epoch was selected to fit 32-bit timestamps. A signed 32-bit count reaches its limit on January 19, 2038, which is a consequence of that storage width, not a documented reason for choosing the epoch. Wider timestamp types avoid the limit. Store an unambiguous timestamp and convert it for display in the user's timezone.
More Timestamp scenarios
Related guides
Frequently asked questions
Why is the Unix epoch January 1, 1970?
Does Unix time count leap seconds?
How do I convert a Unix timestamp to a human-readable date?
Related tools
JSON Formatter
Validate, format, and minify JSON data with readable output and error detection.
Use tool ➜Cron Generator
Visually build standard 5-part cron expressions or translate them into readable schedules.
Use tool ➜Text Encoding Converter
Convert between Text, Base64, Binary, Hexadecimal, and Decimal formats.
Use tool ➜