The Unix epoch
A Unix timestamp counts the seconds elapsed since midnight UTC on 1 January 1970. It is a single number with no timezone, no daylight-saving rules and no locale — which is exactly why it is the format systems use to exchange a moment in time.
The confusion is almost always about units. Unix tooling, database EXTRACT(EPOCH …) and JWT exp claims use seconds. JavaScript's Date.now(), Java and most logging systems use milliseconds. Mixing them produces a date in 1970 or one fifty thousand years from now — both obvious once seen, both easy to ship.
The 2038 problem
Systems that store a timestamp in a signed 32-bit integer overflow on 19 January 2038, wrapping to 1901. Anything storing time in 64 bits — which is now the norm — is unaffected for a span far longer than the age of the universe.
Timestamps show up constantly in JWT claims, where exp and iat are seconds since the epoch. For scheduling rather than converting, see the cron expression generator.