Unix Timestamps: What They Are and Why Every Backend Uses Them

Published July 7, 2026

Prepared by Innealan Editorial

Interested in advertising in this spot? Contact us for sponsorship options

If you’ve worked with any backend system, database, or API, you’ve run into a number like 1735689600 representing a date. That value is 2025-01-01T00:00:00Z. It is Unix time, and understanding the unit prevents a common category of timezone bugs.

The definition

Unix time is the number of seconds that have elapsed since 00:00:00 UTC on January 1, 1970 (the “Unix epoch”), not counting leap seconds. It’s a single, unambiguous integer: no timezone, no daylight saving, no locale.

Why backends prefer it

Seconds vs milliseconds

Unix/POSIX time is defined in seconds, but JavaScript’s Date.now() and new Date().getTime() return milliseconds. For the same moment, the two values are 1735689600 and 1735689600000. Passing the longer value to a field that expects seconds produces a date far in the future. Passing the shorter value to JavaScript’s new Date() produces a date near 1970.

Write the unit into API field names when you control them: createdAtSeconds is harder to misuse than createdAt.

The Year 2038 problem

Systems that store Unix time as a signed 32-bit integer will overflow at 03:14:07 UTC on January 19, 2038, wrapping around to a negative number (interpreted as December 1901). This mostly affects older C code, embedded systems, and some legacy 32-bit databases. Modern systems using 64-bit integers won’t see this issue until the year 292,277,026,596, a comfortably distant deadline.

Best practice for storing dates

Convert between Unix timestamps and human-readable dates, in your local timezone or UTC, with our Unix Timestamp Converter.

Sources and further reading