1# $OpenBSD: leap-seconds.list,v 1.1 2023/11/17 21:51:37 millert Exp $ 2# 3# In the following text, the symbol '#' introduces 4# a comment, which continues from that symbol until 5# the end of the line. A plain comment line has a 6# whitespace character following the comment indicator. 7# There are also special comment lines defined below. 8# A special comment will always have a non-whitespace 9# character in column 2. 10# 11# A blank line should be ignored. 12# 13# The following table shows the corrections that must 14# be applied to compute International Atomic Time (TAI) 15# from the Coordinated Universal Time (UTC) values that 16# are transmitted by almost all time services. 17# 18# The first column shows an epoch as a number of seconds 19# since 1 January 1900, 00:00:00 (1900.0 is also used to 20# indicate the same epoch.) Both of these time stamp formats 21# ignore the complexities of the time scales that were 22# used before the current definition of UTC at the start 23# of 1972. (See note 3 below.) 24# The second column shows the number of seconds that 25# must be added to UTC to compute TAI for any timestamp 26# at or after that epoch. The value on each line is 27# valid from the indicated initial instant until the 28# epoch given on the next one or indefinitely into the 29# future if there is no next line. 30# (The comment on each line shows the representation of 31# the corresponding initial epoch in the usual 32# day-month-year format. The epoch always begins at 33# 00:00:00 UTC on the indicated day. See Note 5 below.) 34# 35# Important notes: 36# 37# 1. Coordinated Universal Time (UTC) is often referred to 38# as Greenwich Mean Time (GMT). The GMT time scale is no 39# longer used, and the use of GMT to designate UTC is 40# discouraged. 41# 42# 2. The UTC time scale is realized by many national 43# laboratories and timing centers. Each laboratory 44# identifies its realization with its name: Thus 45# UTC(NIST), UTC(USNO), etc. The differences among 46# these different realizations are typically on the 47# order of a few nanoseconds (i.e., 0.000 000 00x s) 48# and can be ignored for many purposes. These differences 49# are tabulated in Circular T, which is published monthly 50# by the International Bureau of Weights and Measures 51# (BIPM). See www.bipm.org for more information. 52# 53# 3. The current definition of the relationship between UTC 54# and TAI dates from 1 January 1972. A number of different 55# time scales were in use before that epoch, and it can be 56# quite difficult to compute precise timestamps and time 57# intervals in those "prehistoric" days. For more information, 58# consult: 59# 60# The Explanatory Supplement to the Astronomical 61# Ephemeris. 62# or 63# Terry Quinn, "The BIPM and the Accurate Measurement 64# of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, 65# July, 1991. <http://dx.doi.org/10.1109/5.84965> 66# reprinted in: 67# Christine Hackman and Donald B Sullivan (eds.) 68# Time and Frequency Measurement 69# American Association of Physics Teachers (1996) 70# <http://tf.nist.gov/general/pdf/1168.pdf>, pp. 75-86 71# 72# 4. The decision to insert a leap second into UTC is currently 73# the responsibility of the International Earth Rotation and 74# Reference Systems Service. (The name was changed from the 75# International Earth Rotation Service, but the acronym IERS 76# is still used.) 77# 78# Leap seconds are announced by the IERS in its Bulletin C. 79# 80# See www.iers.org for more details. 81# 82# Every national laboratory and timing center uses the 83# data from the BIPM and the IERS to construct UTC(lab), 84# their local realization of UTC. 85# 86# Although the definition also includes the possibility 87# of dropping seconds ("negative" leap seconds), this has 88# never been done and is unlikely to be necessary in the 89# foreseeable future. 90# 91# 5. If your system keeps time as the number of seconds since 92# some epoch (e.g., NTP timestamps), then the algorithm for 93# assigning a UTC time stamp to an event that happens during a positive 94# leap second is not well defined. The official name of that leap 95# second is 23:59:60, but there is no way of representing that time 96# in these systems. 97# Many systems of this type effectively stop the system clock for 98# one second during the leap second and use a time that is equivalent 99# to 23:59:59 UTC twice. For these systems, the corresponding TAI 100# timestamp would be obtained by advancing to the next entry in the 101# following table when the time equivalent to 23:59:59 UTC 102# is used for the second time. Thus the leap second which 103# occurred on 30 June 1972 at 23:59:59 UTC would have TAI 104# timestamps computed as follows: 105# 106# ... 107# 30 June 1972 23:59:59 (2287785599, first time): TAI= UTC + 10 seconds 108# 30 June 1972 23:59:60 (2287785599,second time): TAI= UTC + 11 seconds 109# 1 July 1972 00:00:00 (2287785600) TAI= UTC + 11 seconds 110# ... 111# 112# If your system realizes the leap second by repeating 00:00:00 UTC twice 113# (this is possible but not usual), then the advance to the next entry 114# in the table must occur the second time that a time equivalent to 115# 00:00:00 UTC is used. Thus, using the same example as above: 116# 117# ... 118# 30 June 1972 23:59:59 (2287785599): TAI= UTC + 10 seconds 119# 30 June 1972 23:59:60 (2287785600, first time): TAI= UTC + 10 seconds 120# 1 July 1972 00:00:00 (2287785600,second time): TAI= UTC + 11 seconds 121# ... 122# 123# in both cases the use of timestamps based on TAI produces a smooth 124# time scale with no discontinuity in the time interval. However, 125# although the long-term behavior of the time scale is correct in both 126# methods, the second method is technically not correct because it adds 127# the extra second to the wrong day. 128# 129# This complexity would not be needed for negative leap seconds (if they 130# are ever used). The UTC time would skip 23:59:59 and advance from 131# 23:59:58 to 00:00:00 in that case. The TAI offset would decrease by 132# 1 second at the same instant. This is a much easier situation to deal 133# with, since the difficulty of unambiguously representing the epoch 134# during the leap second does not arise. 135# 136# Some systems implement leap seconds by amortizing the leap second 137# over the last few minutes of the day. The frequency of the local 138# clock is decreased (or increased) to realize the positive (or 139# negative) leap second. This method removes the time step described 140# above. Although the long-term behavior of the time scale is correct 141# in this case, this method introduces an error during the adjustment 142# period both in time and in frequency with respect to the official 143# definition of UTC. 144# 145# Questions or comments to: 146# Judah Levine 147# Time and Frequency Division 148# NIST 149# Boulder, Colorado 150# Judah.Levine@nist.gov 151# 152# Last Update of leap second values: 8 July 2016 153# 154# The following line shows this last update date in NTP timestamp 155# format. This is the date on which the most recent change to 156# the leap second data was added to the file. This line can 157# be identified by the unique pair of characters in the first two 158# columns as shown below. 159# 160#$ 3676924800 161# 162# The NTP timestamps are in units of seconds since the NTP epoch, 163# which is 1 January 1900, 00:00:00. The Modified Julian Day number 164# corresponding to the NTP time stamp, X, can be computed as 165# 166# X/86400 + 15020 167# 168# where the first term converts seconds to days and the second 169# term adds the MJD corresponding to the time origin defined above. 170# The integer portion of the result is the integer MJD for that 171# day, and any remainder is the time of day, expressed as the 172# fraction of the day since 0 hours UTC. The conversion from day 173# fraction to seconds or to hours, minutes, and seconds may involve 174# rounding or truncation, depending on the method used in the 175# computation. 176# 177# The data in this file will be updated periodically as new leap 178# seconds are announced. In addition to being entered on the line 179# above, the update time (in NTP format) will be added to the basic 180# file name leap-seconds to form the name leap-seconds.<NTP TIME>. 181# In addition, the generic name leap-seconds.list will always point to 182# the most recent version of the file. 183# 184# This update procedure will be performed only when a new leap second 185# is announced. 186# 187# The following entry specifies the expiration date of the data 188# in this file in units of seconds since the origin at the instant 189# 1 January 1900, 00:00:00. This expiration date will be changed 190# at least twice per year whether or not a new leap second is 191# announced. These semi-annual changes will be made no later 192# than 1 June and 1 December of each year to indicate what 193# action (if any) is to be taken on 30 June and 31 December, 194# respectively. (These are the customary effective dates for new 195# leap seconds.) This expiration date will be identified by a 196# unique pair of characters in columns 1 and 2 as shown below. 197# In the unlikely event that a leap second is announced with an 198# effective date other than 30 June or 31 December, then this 199# file will be edited to include that leap second as soon as it is 200# announced or at least one month before the effective date 201# (whichever is later). 202# If an announcement by the IERS specifies that no leap second is 203# scheduled, then only the expiration date of the file will 204# be advanced to show that the information in the file is still 205# current -- the update time stamp, the data and the name of the file 206# will not change. 207# 208# Updated through IERS Bulletin C65 209# File expires on: 28 December 2023 210# 211#@ 3912710400 212# 2132272060800 10 # 1 Jan 1972 2142287785600 11 # 1 Jul 1972 2152303683200 12 # 1 Jan 1973 2162335219200 13 # 1 Jan 1974 2172366755200 14 # 1 Jan 1975 2182398291200 15 # 1 Jan 1976 2192429913600 16 # 1 Jan 1977 2202461449600 17 # 1 Jan 1978 2212492985600 18 # 1 Jan 1979 2222524521600 19 # 1 Jan 1980 2232571782400 20 # 1 Jul 1981 2242603318400 21 # 1 Jul 1982 2252634854400 22 # 1 Jul 1983 2262698012800 23 # 1 Jul 1985 2272776982400 24 # 1 Jan 1988 2282840140800 25 # 1 Jan 1990 2292871676800 26 # 1 Jan 1991 2302918937600 27 # 1 Jul 1992 2312950473600 28 # 1 Jul 1993 2322982009600 29 # 1 Jul 1994 2333029443200 30 # 1 Jan 1996 2343076704000 31 # 1 Jul 1997 2353124137600 32 # 1 Jan 1999 2363345062400 33 # 1 Jan 2006 2373439756800 34 # 1 Jan 2009 2383550089600 35 # 1 Jul 2012 2393644697600 36 # 1 Jul 2015 2403692217600 37 # 1 Jan 2017 241# 242# the following special comment contains the 243# hash value of the data in this file computed 244# use the secure hash algorithm as specified 245# by FIPS 180-1. See the files in ~/pub/sha for 246# the details of how this hash value is 247# computed. Note that the hash computation 248# ignores comments and whitespace characters 249# in data lines. It includes the NTP values 250# of both the last modification time and the 251# expiration time of the file, but not the 252# white space on those lines. 253# the hash line is also ignored in the 254# computation. 255# 256#h e76a99dc 65f15cc7 e613e040 f5078b5e b23834fe 257