A GPS time value is a count of seconds from 1980-01-06T00:00:00Z. It is useful only when its source epoch and unit travel with it; the number by itself does not announce which clock it belongs to.

Conversion rule

Unix seconds = GPS seconds + 315964800 − GPS-to-UTC leap-second offset

The converter applies that relationship and returns Unix seconds, epoch milliseconds, ISO 8601 UTC, and a readable UTC value. Keep the original value as well when investigating a log or export so the conversion can be checked later.

Where mistakes happen

GPS time does not account for leap seconds. The current offset is useful for recent values, but historical conversion needs the offset in force when the event occurred.

A safer workflow

  • Identify the platform and field name before doing arithmetic.
  • Preserve the original value as a string when it may exceed JavaScript safe-integer precision.
  • Convert once at the boundary, then store or compare a declared Unix unit.
  • Format in a named timezone only when presenting the resulting instant to a person.

Frequent questions:

Q: What is the GPS epoch?
A: GPS time starts at 00:00:00 UTC on January 6, 1980.
Q: Why is GPS time ahead of UTC?
A: GPS time does not include leap seconds, while UTC does. Since 1980, 18 leap seconds have been added to UTC, so GPS is currently 18 seconds ahead.
Q: How do I convert GPS time to Unix time?
A: Add 315,964,800 seconds (the 1970→1980 gap) and subtract the current 18-second leap-second offset to get a UTC Unix timestamp.