GNSS Engineering Tools
GPS Time ↔ UTC ↔ Unix Converter
Switch instantly between UTC, GPS week + TOW, GPS seconds since epoch, and Unix time — with the full leap-second history baked in (GPS is currently 18 seconds ahead of UTC). Surfaces the 10-bit week + rollover count for legacy NMEA / RINEX 2 data, the day-of-year for RINEX file naming, and a live ticker showing the current GPS week + TOW for sanity checks.
GPS epoch 1980-01-06 · 18 leap seconds active
Edit any field and the others recompute live. The leap-second table runs from the GPS epoch through 2017-01-01 (the most recent insertion); GPS − UTC at the chosen instant is shown in the output tile. The page URL stays in sync — copy the address bar to share a specific timestamp.
Currently
2026-06-15T16:29:59Z · GPS week 2423 · TOW 145817 · DOY 166
Live UTC, GPS week, time-of-week, and day-of-year — updates every second.
UTC date / time
GPS week + TOW
GPS seconds since epoch
Unix timestamp
10-bit week
375
mod 1024
Rollover #
2
1024-week cycles
Leap seconds
+18s
GPS − UTC
Day of year
166 / 2026
RINEX file numbering
RINEX filename templates
Substitute your 4-char site code for 'ssss' / 'SSSS' and your 3-char country code for 'CCC'.
- RINEX 2 daily:ssss1660.26o
- RINEX 2 hourly:ssss166q.26o
- RINEX 3 hourly:SSSS00CCC_R_20261661629_01H_30S_MO.rnx
When you'd reach for this
When you'd reach for this
GPS time shows up wherever raw GNSS data shows up. Each case below uses the same converter — what changes is which format your downstream tool expects.
Reading RINEX timestamps
RINEX OBS / NAV files quote epochs in GPS week + TOW (RINEX 2.x) or absolute year-DOY-HH-MM (RINEX 3.x). When a file's date doesn't match your campaign log, pasting the week + TOW here converts it to a wall-clock UTC instantly — including the right leap-second offset for the data's collection year.
Decoding NMEA / firmware logs
Receiver debug logs often print 'week %d, tow %.3f' instead of UTC. Old NMEA streams (and some firmware) report only the 10-bit week — paste it here with the rollover count for your collection date to recover the unambiguous absolute week.
Checking ephemeris validity
Broadcast ephemeris and almanac validity windows are quoted in GPS week + TOW. To check whether a stored ephemeris is still inside its 4-hour validity window for a planned observation epoch, convert both to GPS seconds and subtract.
Naming RINEX output files
RINEX 2 daily files use ssssDDD0.YYo and hourly files use ssssDDDx.YYo (lowercase a–x for hour 0–23). RINEX 3 uses the longer site-DOY-hour-minute scheme. The filename templates panel builds the time-dependent portion for the current epoch — paste your site / country codes in and you're done.
Detecting 10-bit week rollovers
Three GPS week rollovers have happened (1999-08-22, 2019-04-07, with the next on 2038-11-21). Receivers and software with hard-coded 10-bit week handling either start printing dates 19.6 years in the past or fail to acquire. Plug a suspect timestamp here to see which rollover the receiver is on.
Cross-referencing UTC with TAI / GPS
When you're correlating GNSS observations with VLBI, satellite TLE, or astronomical events, you'll see TAI or GPS time in the source data. The leap-seconds output shows how many seconds GPS is currently ahead of UTC (18, since the 2017-01-01 leap second). TAI = GPS + 19 s always.
FAQ
Frequently asked questions
What integrators most often get tripped up by when GPS time and UTC don't agree.
Why is GPS time 18 seconds ahead of UTC?
Both are referenced to TAI (atomic time), but UTC has had 18 leap seconds inserted since the GPS epoch (1980-01-06) to keep it close to UT1 (Earth rotation). GPS time has had ZERO leap seconds — it's been running continuously since the epoch. The most recent leap second was 2017-01-01; the IERS has announced none since and is on track to phase the system out around 2035.
What is the 10-bit week rollover?
Original GPS navigation messages encoded the week number in only 10 bits — max value 1023, after which it wraps to 0. Each cycle takes 1024 weeks ≈ 19.6 years. The first rollover was 1999-08-22; the second was 2019-04-07; the third will be 2038-11-21. Receivers that hard-code the rollover count print dates 19.6 (or 39.2) years in the past after each event. Modern CNAV / L1C / Galileo E1 signals use 13-bit week numbers and don't roll over until 2137.
How do I know which rollover my receiver is on?
Look at any timestamp it produces — if it claims a date in the past matching the year minus 19.6 (or 39.2), it's stuck on an old rollover. This converter shows the current absolute week, the 10-bit week, and the rollover count — match the rollover number against your receiver's date to confirm.
What's the difference between GPS time and GPST?
Nothing — 'GPS time' and 'GPST' are interchangeable acronyms for the same continuous timescale. Both differ from UTC by the same 18 seconds (since the 2017 leap), from TAI by exactly 19 seconds, and from GLONASS time (UTC(SU) + 3 hours) by varying amounts.
Does TOW count seconds with or without leap?
TOW is the GPS seconds since the start of the current GPS week (Sunday 00:00:00 UTC + leap seconds). It doesn't include any 'extra' second on a leap-second day, because GPS time has no leap seconds. The conversion to UTC adds back the cumulative offset valid at that instant.
Will future leap seconds break my receiver?
Modern receivers handle leap seconds correctly via the broadcast navigation message (almanac field 'A1 / A0 / dt_LS / WN_LSF / DN'). Legacy or simplified firmware may produce a 1-second discrepancy for several hours around the insertion. Tools like RINEX header LEAP SECONDS records also need to be updated. IERS aims to abolish leap seconds entirely by 2035.
Building or upgrading a timing-grade GNSS chain?
GNSource timing antennas drive 5G fronthaul, telecom networks, and power-grid PMU receivers with 1 kV lightning protection and 36 dB LNA. Tell us the timing accuracy you need at the receiver — we'll spec an antenna + cable run that lands you inside your holdover budget.