Time Systems and Dates - GPS Time


Occasionally there is need to use the details of how GPS labels time tags. In general this does not come up for the casual user. The GPS message contains information that allows a receiver to convert GPS Time into Universal Time (really UTC or Universal Time Coordinated) or any time zone. Universal Time used to be called Greenwich Mean Time or Zulu time.

GPS Time is a uniformly counting time scale beginning at the 1/5/1980 to 1/6/1980 midnight. January 6, 1980 is a Sunday. GPS Time counts in weeks and seconds of a week from this instant. The weeks begin at the Saturday/Sunday transition. The days of the week are numbered, with Sunday being 0, 1 Monday, etc.

GPS week 0 began at the beginning of the GPS Time Scale. Within each week the time is usually denoted as the second of the week. This is a number between 0 and 604,800 ( 60 x 60 x 24x 7). Sometimes the second-of-week (SOW) is split into a day of week (DOW) between 0 and 6 and a second of day (SOD) between 0 and 86400.

The word "uniformly" is used above to indicate that there are no "leap seconds" in this time system. The world does not rotate smoothly. This can easily be measured with atomic clocks. A plot of the difference between atomic clock time and "earth" time shows a slow drift with some small irregularities. Below is a plot of the difference between earth rotation time (UT1) and the atomic time used by science - UTC. The jumps are where UTC was adjusted to keep it within a second of earth rotation time. (Leap Seconds were introduced there.)

UT1 - Atomic Time, Earth Rotation Time Error

The current slow drift is not constant over decades and comes back. The source of these variations are many, some unknown. Tidal effects can be predicted over centuries, but there have been changes due to things like the 1990's el Nino event and even large geomagnetic storms.

A data set available at the IERS goes back to 1623. It is based on an analysis of astronomical events and historic data. The data after 1860 is thought to be reliable and after 1956 very good atomic clock data was used. Here are the difference in the length of a day, in milliseconds, and the accumulated difference from the value in 1800.


200 years of earth rotation rate error

200 years earth rotation time error

This is based on the work of Morrison of the Royal Greenwich Observatory.

Every year or so, the "world as a clock" is about a second off from atomic time. Since 1972 the world timing community has agreed to insert or take out 1 second of time in the UTC time scale to keep the earth rotation aligned to within a second of atomic time. This is done on either January 1 or July 1 of a given year. To date there have only been extra seconds inserted, none taken out. This is like the insertion of February 29 into leap years. Therefore these have been called leap seconds. A detailed discussion of leap seconds can be found on the a US Naval Observatory WWW site. The jumps in the plot are due to leap seconds changing UTC.

Because GPS time does not have leap seconds, it will change by 1 second with respect to UTC whenever a leap second is inserted. The two time scales were aligned when GPS time began on January 6, 1980. With the next insertion of a leap second, on July 1, 1981, the UTC time scale began reporting a number 1 second smaller than GPS time. Up to 2000, there have been 13 leap seconds.

GPS to UTC Offset

Beginning GPS - UTC
On Date (sec)
Jan 6 1980 0
Jul 1 1981 1
Jul 1 1982 2
Jul 1 1983 3
Jul 1 1985 4
Jan 1 1988 5
Jan 1 1990 6
Jan 1 1991 7
Jul 1 1992 8
Jul 1 1993 9
Jul 1 1994 10
Jan 1 1996 11
Jul 1 1997 12
Jan 1 1999 13

The navigation message of the GPS satellites contains the number of seconds offset between GPS and UTC time. It also has a note on when the next leap second will be inserted, if known. In general the insertion of a leap second is only decided about 2 months before it is done. After all, it is based on the anomalies in the earth's spin rate, which are not predictable, but only measurable.


The abbreviation UT is not used consistently in popular literature. To an astronomer it means a special time frame, called UT1, that is determined by the real spinning of the earth. In a lot of non-scientific literature, it means UTC which used to be called Greenwich Mean Time (GMT).

UTC stands for Universal Time Coordinated. It is what you hear from time stations WWV, CHU etc. It is a time frame based on atomic clocks and aligned with the zero longitude time zone. UTC, plus an offset for time zones, is what we use in everyday life. UT1 is principally of interest to astronomers who have to know the precise orientation of the earth for observations.

(It's use in GPS is important, but hidden from the user. The satellites are really positioned in inertial space and the earth orientation is needed to use them to position a place on the earth. UT1, and polar motion, are needed for this at the 500 m level. All the work to do this is done at the operation control center and included in the Broadcast Ephemeris that are uploaded. These generate satellite positions in earth fixed coordinates using GPS Time as an input.)


Julian Date - Modified Julian Date

In everyday life we use month, day and year to denote a date. However adding and subtracting dates is complicated. Astronomers use a time scale that counts uniformly in days they call the Julian Date. They set the origin of this date system far back in time, at January 0, 4713 BC at noon. This scale is counted in days and fractions of a day. January 1, 2000 at noon will be JD = 2,451,545.0 . The days used to be started at noon, hence the use of noon as the reference time. In fact, astronomical publications used noon as the day dividing line until 1925.

Julian dates are large numbers and sometime hard to handle. There is a slightly modified JD scale that is commonly used in science today. It is called the Modified Julian Date (MJD). The introduction of this scale was used to place the day transition at midnight, agreeing with the civilian days. MJD is defined as the Julian Date minus 2,400,000.5 . Thus January 1, 2000 at noon will be MJD of 51,544.5 .

Julian Date to MJD

YEAR Julian Date Modified Julian Date
  Jan 0 Jan 0 Jan 0
  Noon UT Noon UT Midnight
1950 2433282 33281.5 33282
1960 2436934 36933.5 36934
1970 2440587 40586.5 40587
1980 2444239 44238.5 44239
1990 2447892 47891.5 47892
2000 2451544 51543.5 51544
2010 2455197 55196.5 55197
2020 2458849 58848.5 58849
2030 2462502 62501.5 62502
2040 2466154 66153.5 66154
2050 2469807 69806.5 69807


A Government System with The Standard Disclaimer