Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

NIST Internet Time Service (ITS)

Set your computer clock via the Internet using tools built into the operating system


NIST has established a mailing list (Google Group) to inform users of status changes of the Internet Time Service. If you wish to subscribe to this list, please send your name and email address to: internet-time-service [at] nist.gov (subject: Subscribe%20to%20ITS%20mailing%20list) (internet-time-service[at]nist[dot]gov)


We are phasing out the ftp access to the time servers. All of the public files on the time servers, including example source code for programmers who want to write their own applications and ready-to-run applications for some common operating systems, have been moved to this public ftp site: ftp.boulder.nist.gov/pub/time.

The file nistime-32bit.exe can be downloaded from this site. It is a ready-to-run client for most versions of Windows. It supports a number of different options, and has extensive help messages for each option.

When you connect to this site, you should use the username “anonymous” and your email address as the password.

The FTP client software in some versions of Microsoft Windows cannot connect to this public site. There are a number of third-party programs that can access this site from a Windows system.

You may also get client software and documentation for many operating systems from the Network Time Foundation at www.ntp.org.

Manually setting the system clock:


Most operating systems, such as Windows, MacOS, and Linux have an option to automatically synchronize the system clock periodically by sending queries to an NTP (network time protocol) server. This synchronization process normally starts automatically when the system is bootstrapped and runs in the background. The process generally does not require any manual intervention. If you have administrator (or “root”) privileges, you may also set the clock manually at any time, although this is generally not necessary.

Windows: Right-click the system clock in the lower right-hand corner of the display and click on the “sync now” button. Your system will contact a time server and adjust the system clock, if needed. You cannot select the time server in the newer versions of Windows.

Mac: Applications > System Preferences > Date & Time

Linux: System > Admin >Time and Date

In the settings, you may be allowed to pick which NTP server the time comes from. This option is different on different versions of the operating system, and you should consult the help messages for the version that you are using.

NIST operates several stratum-1 network time servers, which means their time is directly linked to UTC(NIST), the official NIST time. Other sources of time are not monitored or certified by NIST.

Here are the server names, locations, and IP addresses and current status.

There are some steps you may have to take when accessing the NIST Internet Time Service through a firewall.


NIST is now offering a network time service to deliver UT1 time. For details about the UT1 server, please see the UT1 NTP Information page.


The Internet Time Service and Leap Seconds

For more detailed information about leap seconds, see Leap Seconds FAQs.

The name of a positive leap second is 23:59:60, but digital time formats, which represent the current time as the number of seconds that have elapsed since some origin (NTP, for example), cannot represent that time. The NIST time servers add the extra leap second by stopping the clock for one second at 23:59:59. That is, they repeat the binary time equivalent of 23:59:59 twice, and the next second is second 0 of the following day. The time tag corresponding to23:59:59 is therefore ambiguous, since two consecutive seconds have that name. It can be difficult to establish the time-ordering of events in the vicinity of a leap second, since the time 23:59:59.2 in the leap second occurred after 23:59:59.5 in the first second with that name. A calculation of a time interval across the leap second has a similar ambiguity.

There are other ways of realizing the leap second:

1) Some systems implement the leap second by repeating second 0 of the next day instead of second 23:59:59 of the leap second day. This has the same ambiguity problem of the NIST standard method, and also puts the extra second in the wrong day. That is, the time tag associated with the leap second is 00:00:00 of the next day.

2) Some systems implement the leap second by a frequency adjustment that smears the leap second out over some longer interval either before or after the event. This has the advantage that the clock never stops or appears to run backward. However, it has both a time error and a frequency error with respect to legal UTC time during the adjustment period, which often extends for several hours.

Although negative leap seconds have never been used, the realization of a negative leap second is simpler in principle. The time would advance from 23:59:58 to 00:00:00 of the next day, skipping 23:59:59. The descriptions of the various frequency-adjustment methods do not describe how this situation will be addressed.

The message formats do not contain any information about how the leap second event is realized by a time server, so that it is difficult to combine data from different sources close to a leap second event. In addition, users who require time stamps that are traceable to national or international standards must be aware of how a time source realizes the leap-second event.

All NIST time services provide some advance notice of the leap second, but the details vary from one service to another. For example, the NIST digital telephone service (ACTS) provides advance notice from the start of the month in which the leap second will occur. The NIST NTP servers provide advance notice starting from 00:00 UTC on the last day of the month when the leap second will occur.

Most versions of UNIX (and its derivatives, such as Linux, FreeBSD, ...) have support for the leap second built into the operating system. Many desktop systems do not have any native support at all for leap seconds, although there are some third-party applications that do this.

The simple text file, leap-seconds.list, which is available on the NIST FTP site (linked above) in folder /pub/time, contains a list of all past and announced future leap seconds. The structure of the file is explained in the comments section of the file. The file is updated at least twice per year based on messages received from the International Earth Rotation and Reference Service (iers.org).

Questions or comments: Judah Levine Time and Frequency Division NIST Boulder Judah.Levine [at] nist.gov (Judah[dot]Levine[at]nist[dot]gov)

Protocols and Authentication

The time information provided by the service is directly traceable to UTC(NIST). The service responds to time requests from any Internet client in several formats including the DAYTIME, TIME, and NTP protocols.

Requests in these formats generally do not support authentication, and no keys or passwords are needed to use these services.

In addition to these services, we provide authenticated NTP messages using a symmetric-key algorithm that is compatible with the reference implementation of the NTP software. (For example, see www.ntp.org) The authentication ensures that the message originated from a NIST time server and was not modified during transit. This service is provided by servers that are independent of the systems described in the previous text. All of the servers are synchronized using the same algorithm, and the accuracy of the time stamps (at the server) should be comparable for any one of them. The accuracy of the time stamps as seen by a user will usually be determined largely by the stability and reciprocity of the network connection between the server and the user's systems. See the authenticated NTP description for more details.

Internet time code protocols are defined by a series of documents called Request for Comments, or RFCs. These documents are available on-line from several sites on the Internet. The protocols supported by the NIST Internet Time Service are:

Network Time Protocol (RFC-1305 and later versions)

The Network Time Protocol (NTP) is the most commonly used Internet time protocol, and the one that provides the best performance. Large computers and workstations often include NTP software with their operating systems. The client software runs continuously as a background task that periodically gets updates from one or more servers. The client software ignores responses from servers that appear to be sending the wrong time, and averages the results from those that appear to be correct.

Many of the available NTP software clients for personal computers and network elements (such as gateway or routers) don't do any averaging at all. Instead, they make a single timing request to a signal server (just like a Daytime or Time client) and then use this information to set their computer's clock. The proper name for this type of client is SNTP (Simple Network Time Protocol). The SNTP and NTP processes use the same message format.

The NIST servers listen for a NTP request on port 123, and respond by sending a udp/ip data packet in the NTP format. The data packet includes a 64-bit timestamp containing the time in UTC seconds since January 1, 1900 with a resolution of 200 ps.

Daytime Protocol (RFC-867)

This protocol is widely used by small computers and dedicated hardware systems running MS-DOS and similar operating systems. The server listens on port 13, and responds to requests in tcp/ip format. The standard does not specify an exact format for the Daytime Protocol, but requires that the time is sent using standard ASCII characters. NIST chose a time code format similar to the one used by its dial-up Automated Computer Time Service (ACTS), as shown below:

JJJJJ YR-MO-DA HH:MM:SS TT L H msADV UTC(NIST) OTM

where:

  • JJJJJ is the Modified Julian Date (MJD). The MJD has a starting point of midnight on November 17, 1858. You can obtain the MJD by subtracting exactly 2 400 000.5 days from the Julian Date, which is an integer day number obtained by counting days from the starting point of noon on 1 January 4713 B.C. (Julian Day zero). For example, the MJD of 1 January 2000 is 51544.
  • YR-MO-DA is the date. It shows the last two digits of the year, the month, and the current day of month. The Modified Julian Date value removes the ambiguity of the century. MJD values before 51544 are equivalent to year 19yr, and MJD values greater than or equal to this value are equivalent to year 20yr.
  • HH:MM:SS is the time in hours, minutes, and seconds. The time is always sent as Coordinated Universal Time (UTC). An offset needs to be applied to UTC to obtain local time. For example, Mountain Time in the U. S. is 7 hours behind UTC during Standard Time, and 6 hours behind UTC during Daylight Saving Time.
  • TT is a two digit code (00 to 99) that indicates whether the United States is on Standard Time (ST) or Daylight Saving Time (DST). It also indicates when ST or DST is approaching. This code is set to 00 when ST is in effect, or to 50 when DST is in effect. During the month in which the time change actually occurs, this number will decrement every day until the change occurs. For example, during the month of November, the U.S. changes from DST to ST. On November 1, the number will change from 50 to the actual number of days until the time change. It will decrement by 1 every day until the change occurs at 2 a.m. local time when the value is 1. Likewise, the spring change is at 2 a.m. local time when the value reaches 51.
  • L is a one-digit code that indicates whether a leap second will be added or subtracted just before UTC midnight (not local midnight) on the last day of the current month. If the code is 0, no leap second will occur this month. If the code is 1, a positive leap second will be added at the end of the month. This means that the last minute of the month will contain 61 seconds instead of 60. If the code is 2, a second will be deleted on the last day of the month.
  • H is a health digit that indicates the health of the server. If H = 0, the server is healthy. If H = 1, then the server is operating properly but its time may be in error by up to 5 seconds. This state should change to fully healthy within 10 minutes. If H = 2, then the server is operating properly but its time is known to be wrong by more than 5 seconds. If H = 3, then a hardware or software failure has occurred and the amount of the time error is unknown. If H = 4 the system is operating in a special maintenance mode and both its accuracy and its response time may be degraded. This value is not used for production servers except in special circumstances. The transmitted time will still be correct to within ±1 second in this mode.
  • msADV displays the number of milliseconds that NIST advances the time code to partially compensate for network delays. The advance value should be subtracted from the hh:mm:ss time tag. The result will generally be the correct time within ±0.1 s.
  • The label UTC(NIST) is contained in every time code. It indicates that you are receiving Coordinated Universal Time (UTC) from the National Institute of Standards and Technology (NIST).
  • OTM (on-time marker) is an asterisk (*). The time values sent by the time code refer to the arrival time of the OTM. In other words, if the time code says it is 12:45:45, this means it is (12:45:45 – msADV) UTC when the OTM arrives.

Time Protocol (RFC-868)

This simple protocol is now used by only about 2% of ITS customers. It returns a 32-bit unformatted binary number that represents the time in UTC seconds since January 1, 1900. The server listens for Time Protocol requests on port 37, and responds in either tcp/ip or udp/ip formats. Conversion to local time (if necessary) is the responsibility of the client program. The 32-bit binary format can represent times over a span of about 136 years with a resolution of 1 second. There is no provision for increasing the resolution or increasing the range of years.

The strength of the time protocol is its simplicity. Since many computers keep time internally as the number of seconds since January 1, 1970 (or another date), converting the received time to the necessary format is often a simple matter of binary arithmetic. However, the format does not allow any additional information to be transmitted, such as advance notification of leap seconds or daylight saving time, or information about the health of the server.

The time format has poor error-handling capabilities because any 32-bit value could be a correct response. Many of the client programs that use this format are poorly written and may not handle network errors properly. Therefore, users are strongly encouraged to switch to the Network Time Protocol (NTP), which is more robust and provides greater accuracy.

Contacts

For questions or more information about the NIST Internet Time Service, contact Judah Levine.

Created February 10, 2010, Updated September 17, 2024