<<

A man with a knows what .me it is. A man with two is never sure.

Time and Computers Nicolas Seriot 2015-10-22 Une seconde après le 2015-06-30 23:59, il n'était pas 2015-07-01 00:00 mais 2015-06-30 23:60. En effet, le Bureau Interna.onal des Poids et Mesures (BIPM) a, comme presque chaque année, décidé d'ajouter une seconde intercalaire au temps civil interna.onal (UTC) pour tenir compte du ralen.ssement de la rota.on de la terre.

L'ajout de ceSe seconde pose d'importants problèmes de programma.on et de synchronisa.on. Plusieurs places de bourse suspendent ainsi les échanges autour de la seconde fa.dique. CeSe seconde intercalaire est passablement contestée, au point que l'Union Interna0onal des Télécommunica0on (UIT) se réunira en novembre à Genève pour décider ou non de sa suppression. Si tel est le cas, d'autres problèmes risquent alors de survenir. Dans quelques siècles, il pourrait faire nuit à midi !

CeSe réunion de l'UIT est l'occasion d'examiner comment les systèmes informa.ques gèrent ceSe seconde intercalaire, comment les ordinateurs synchronisent leurs horloges (NTP), quelles sont les horloges de références, comment sont gérés les fuseaux horaires et l'heure d'été, quelles erreurs de programma0on éviter (dis.nc.on et durée), etc. Les exemples seront basés sur l'environnement Unix / OS X. Timekeeping

GMT / UT - Universal

• 19th : rail and telegraphy implied need to synchronise Fme internaFonally

• 1884: (GMT) adopted as the world’s standard Fme, 24 Fmezones

• Based on mean solar Fme, 86400 /

• Adopted by all countries between 1848-1972 1960s

• Atomical allow sub- precision

• ScienFfic and industrial needs, telecom, … http://homepages.abdn.ac.uk/npmuseum/article/Astroimages/16image.jpg SI Second (Intl. System of Units)

The second is the dura.on of 9192631770 periods of the radia.on corresponding to the transi.on between the two hyperfine levels of the ground state of the 133 atom.

(13th Conférence Générale des Poids et Mesures, 1967)

… refers to a caesium atom at rest at a temperature of 0 K. (1997)

… at sea level (beware relaFvity…). Importance of Second DefiniFon

Other physical units such as ampere and meter rely on this as part of their own definiFons.

The meter is the length of the path travelled by light in vacuum during a .me interval of 1/299 792 458 of a second.

(17th Conférence Générale des Poids et Mesures, 1983) Atomic FOCS 1, Federal Office of , Bern, Switzerland As of 2004, off by 1s in 30 million NIST-F2, Boulder, Colorado, USA As of 2014, off by 1s in 300 million years OpFcal Laace Clock

The most precise atomic clock yet, using stronFum atoms, keeps Fme accurately to within a second per 15 billion years.

SystemaFc evaluaFon of an atomic clock at 2 × 10−18 total uncertainty

Nature, March 2015 TAI – InternaFonal Atomic Time

• StaFsFcal Fmescale based on 300+ atomic clocks in 60+ labs worldwide.

• Contributors in BIPM Circular-T, updated monthly.

• Most stable clocks receive the most weight in the calculaFon.

• Time is known only a posteriori, afer measurement. CIRCULAR T 333 ISSN 1143-1393 2015 OCTOBER 12, 14h UTC BUREAU INTERNATIONAL DES POIDS ET MESURES ORGANISATION INTERGOUVERNEMENTALE DE LA CONVENTION DU METRE PAVILLON DE BRETEUIL F-92312 SEVRES CEDEX TEL. +33 1 45 07 70 70 FAX. +33 1 45 34 20 21 [email protected]

1 - Coordinated UTC and its local realizations UTC(k). Computed values of [UTC-UTC(k)] and uncertainties valid for the period of this Circular. From 2015 July 1, 0h UTC, TAI-UTC = 36 s.

Date 2015 0h UTC AUG 30 SEP 4 SEP 9 SEP 14 SEP 19 SEP 24 SEP 29 Uncertainty/ns Notes MJD 57264 57269 57274 57279 57284 57289 57294 uA uB u Laboratory k [UTC-UTC(k)]/ns

AOS (Borowiec) -0.3 -1.0 -1.5 -1.8 -1.5 0.4 1.1 0.3 5.0 5.1 APL (Laurel) -4.8 -2.6 -1.1 2.8 4.3 4.8 4.1 0.3 4.9 4.9 AUS (Sydney) -675.5 -647.2 -633.5 -614.1 -597.8 -581.3 -558.3 0.3 5.0 5.1 BEV (Wien) 0.8 -1.8 -8.4 -18.0 -28.6 -22.2 -11.3 0.3 3.1 3.1 BIM (Sofiya) 2693.2 2725.9 2765.9 2780.0 2784.9 2821.8 2847.7 1.5 7.0 7.2 BIRM (Beijing) - -97.6 -104.8 -118.2 -117.7 -119.1 -134.7 1.5 20.0 20.1 BY (Minsk) 4.3 4.2 3.7 5.8 4.5 8.1 8.1 1.5 7.0 7.2 CAO (Cagliari) -7595.2 -7696.5 -7797.3 -7898.8 -7988.6 -8084.2 -8188.0 8.0 7.0 10.7 CH (Bern-Wabern) 12.3 14.0 12.5 11.3 10.8 12.1 6.8 0.3 1.2 1.3 CNM (Queretaro) -1.9 -2.7 -1.4 -1.1 0.3 -1.0 -1.8 3.0 5.0 5.8 . . . 2 - International Atomic Time TAI and Local atomic time scales TA(k). Computed values of [TAI-TA(k)]. 3 - Difference between the normalized of EAL (free atomic time scale) and TAI. 4 - of the TAI scale interval. 5 - Relations of UTC and TAI with predictions of UTC(k) disseminated by GNSS and their System . 6 - Time links used for the computation of TAI and their uncertainties. US Official Time

UTC(NIST) and UTC(UNSO) both keep their atomic clocks network and their own version of UTC, in very close agreement (about 20 ns). They contribute to InternaFonal Atomic Time (TAI) and Coordinated Universal Time (UTC).

hgp://tycho.usno.navy.mil/mc_to.html Earth RotaFon

• SI second based on Ephemeris Timescale measured in 19th century, slightly shorter than the mean solar second

• Earth's rotaBon tends to be slowing, because of Fdes, climaFc and geological events.

• Mean solar Bme day in gradually increasing before 1820: < 86400 seconds ~1820: 86400 seconds 2015: about 86400.002 seconds Currently the Earth runs slow at roughly 2 per day. Afer 500 days, the difference between UT1 and TAI would be 1 second. hgp://tycho.usno.navy.mil/leapsec.html UTC - Coordinated Universal Time

• Acronym stands for « Coordinated Universal Time » and « temps universel coordonné » not to favor any language.

• Created in the 1950s to display the same Fme worldwide and coordinate Fme radio broadcasts through the world.

• Time is synchronised thanks to coordinated shiHs to match UT. Different Second DefiniBons, Irregular ShiHs ephemeris second + custom steps

1 second = 1/31556925.9747 of the tropical 1900 January 0 at 12 ephemeris .me atomic second (SI) 1st January 1972: reset UTC 00:00:00 == 1 January 1972 00:00:10 TAI

UTC now Fcks in SI seconds, in step with TAI.

Kept within 0.9 seconds of UT1 with leap seconds.

UTC = TAI + int. nb of seconds, currently 36 DUT1 CorrecFon

hgp://www.nist.gov/pml/div688/grp50/leapsecond.cfm Leap Seconds

• InternaFonal Earth RotaFon and Reference Systems Service aka IERS adds or removes 1 second to UTC whenever needed to keep UTC within UT1 +/- 0.9 s.

• IERS monitors the Earth rotaFon, calculates and publishes UT1 in IERS BulleFn B.

• BulleFn B is used for deciding when to add a leap second to UTC, published in BulleFn C.

• Currently about every 18 , at end of December or June, or else end of March or September (never happened). Paris, 5 January 2015

Bulletin C 49

To authorities responsible for the measurement and distribution of time

UTC TIME STEP on the 1st of July 2015

A positive leap second will be introduced at the end of June 2015. The sequence of dates of the UTC second markers will be:

2015 June 30, 23h 59m 59s 2015 June 30, 23h 59m 60s 2015 July 1, 0h 0m 0s

The difference between UTC and the International Atomic Time TAI is:

from 2012 July 1, 0h UTC, to 2015 July 1 0h UTC : UTC-TAI = - 35s from 2015 July 1, 0h UTC, until further notice : UTC-TAI = - 36s

hgps://hpiers.obspm.fr/iers/bul/bulc/bulleFnc.49 Leap Seconds Debates

• Without leap seconds, noon on the clock will be midnight in the sky some 3,000 years from now (unless we adjust Fme zones)

• Announced 6+ months in advance, but not all sources use it (eg. German radio signal DCF77 does announce leap seconds only one ahead of Fme)

• Not a viable long- soluBon Next century: a leap second will be required every year 2600: 3 or 4 leap seconds will be required each year 4300: add leap seconds every Stock Exchanges

« To account for the leap second, an « Large U.S. stock exchanges extra second that will be added to including 's Coordinated Universal Time (UTC) NYSE Arca, Nasdaq OMX Group Inc.'s on June 30, 2015, CME Group is Nasdaq and BATS Global Markets delaying the CME Globex market will close their afer-hours sessions open for trade date July 1. » 30 before their regular 8 p.m. close. » hgp:// www.cmegroup.com/ hgp://www.nasdaq.com/arFcle/ company/leap-second.html markets-are-jumpy-over-coming- leap-second-20150518-01174 UTC CalculaFons

• ReconstrucBng is a mess

• Number of SI seconds elapsed since any date before atomic Fme? No way!

• Nomber of seconds legally ellapsed since some date in the past? Depends on juridicFons! hgp://www.ucolick.org/~sla/leapsecs/epochFme.html

is impossible to tell for sure

• Number of SI seconds before some future UTC date? No way! Debates in ITU-R

• Since 2001, ITU-R has been considering suppressing leap seconds.

• In 2015 November ITU-R WRC-15 will again discuss leap seconds in UTC. POSIX Time • Easy to deal with for machines, no months etc, basically a simple counter

• POSIX Fmestamp actually counts the number of UT seconds since 1970-01-01

• Each and every day is exactly 86400 seconds (POSIX.1-2008, 4.15)

• Timezone in an environment variable hgp://pubs.opengroup.org/onlinepubs/ 9699919799/basedefs/V1_chap08.html

• gettimeofday() obtains seconds and microseconds since January 1, 1970 00:00 UTC. hgp://pubs.opengroup.org/onlinepubs/007908775/ not to be used for measuring Bme intervals! Measuring Time Intervals

1445472703 - 157187 - 02:11:43 1445472704 - 157188 - 02:11:44 1445472705 - 157189 - 02:11:45 1445469104 - 157190 - 01:11:44 # time changes 1445469105 - 157191 - 01:11:45 1445469106 - 157192 - 01:11:46

POSIX monotonous funcFon mach_absolute_time() Fmestamp or CACurrentMediaTime(), equivalent to Linux clock_gettime() nb of seconds elapsed since unspecified , eg. reboot POSIX and Leap Seconds

• Leap seconds are just ignored

• Alignment with the actual Fme is implementaFon defined (POSIX.1-2008, 4.15)

• PosiFve leap seconds have no UNIX Fmestamp representaFon

UTC - timeIntervalSince1970

2015-06-30 23:59:59 - 1435708799 2015-06-30 23:59:60 - 1435708800 <- unknown 2015-07-01 00:00:00 - 1435708800 2015-07-01 00:00:01 - 1435708801 NSDate *dateFromString(NSString *s) { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSLocale *posixLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; [dateFormatter setLocale:posixLocale]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; return [dateFormatter dateFromString:s]; }

/* Cocoa can't build date with leap second */

NSDate *date1 = dateFromString(@"2015-06-30 23:59:59"); NSLog(@"-- %@", date1); // 2015-06-30 23:59:59 +0000

NSDate *date2 = dateFromString(@"2015-06-30 23:59:60"); NSLog(@"-- %@", date2); // null

/* NSDate computations just ignores leap seconds */

NSDate *date3 = dateFromString(@"2015-01-01 00:00:00"); NSDate *date4 = dateFromString(@"2016-01-01 00:00:00"); NSLog(@"-- %f", [date4 timeIntervalSinceDate:date3]); // 31536000 = 365 * 24 * 60 * 60 void printTimestampAndDate(const char* s) { struct tm tm; memset(&tm, 0, sizeof(struct tm)); strptime_l(s, "%Y-%m-%d %H:%M:%S", &tm, NULL);

time_t time = mktime(&tm);

char buf[255]; strftime(buf, sizeof(buf), "%d %b %Y %H:%M:%S", &tm); printf("-- %ld \t %s\n", time, buf);

NSDate *date = [NSDate dateWithTimeIntervalSince1970:time]; NSLog(@"-- %@", date); }

/* time.h functions can represent leap second but same as next second */ printTimestampAndDate("2015-06-30 23:59:59"); // -- 1435705199 01 Jul 2015 00:59:59 printTimestampAndDate("2015-06-30 23:59:60"); // -- 1435705200 01 Jul 2015 01:00:00 printTimestampAndDate("2015-07-01 00:00:00"); // -- 1435705200 01 Jul 2015 01:00:00 POSIX DefiniFon is Inconsistent

• POSIX was designed before the introducBon of leap seconds.

• During leap seconds, time_t cannot represent UTC during leap seconds non-ambiguously.

• POSIX basically pretends to count 86400 SI seconds per day, which is not possible.

• MiFgaFon: don’t store UNIX binary Bmestamps but UTC dateFme instead. POSIX 32 bits overflow

32 bits time_t will overflow afer 2038-01-19T03:14:07 UTC

$ date -ur `echo $((2**31-1))` Tue Jan 19 03:14:07 UTC 2038 GPS - Global PosiFoning System

• Each satellite has at 2+ onboard caesium atomic clocks and 2+ rubidium atomic clocks as back-up.

• Time measured from satellites is gathered by monitor staBons, processed in Colorado and uploaded again.

• Periodic correcBons are performed on the on-board clocks to correct relaFvisFc effects and keep them synchronized with ground clocks.

• GPS receiver compares signals from 4 satellites, computes locaFon on earth by analysing Fming delays. GPS Control Segment

Greenland

Alaska

Schriever AFB United Kingdom Colorado New Hampshire South Korea Vandenberg AFB California USNO Washington Cape Canaveral Florida Bahrain Hawaii

Guam Ecuador Kwajalein

Ascension Diego Garcia

Argentina South Africa Australia New Zealand

Master Control Station Alternate Master Control Station Ground Antenna AFSCN Remote Tracking Station Air Force Monitor Station NGA Monitor Station

Updated April 2014 GPS and Leap Seconds

• Since GPS January 6, 1980, GPS Bme == TAI + 19 seconds

• An UTC correcBon is provided as part of the broadcast message (currently UTC + 17 leap seconds since 1980)

• Delta GPS/UTC is sent on 8 bits, so the counter will probably overflow around 2060-2090 depending on the number of leap seconds. NTP -

• Invented and developped by Prof. David Mills first RFC from 1988

• NTP (RFC-5905, port 123) is the most commonly used Bme protocol. Supersedes DayFme Protocol (port 13) and Time Protocol (port 37).

• The client periodically polls Bme servers, ignores responses from servers that appear to be sending the wrong Fme, and averages the results from those that appear to be correct.

• Most desktop clients make a single request to set the computer’s clock. They are actually SNTP (Simple Network Time Protocol) clients. SNTP – Simple Network Time Protocol

$ sntp time.euro.apple.com 2015 Jul 07 22:44:26.122392 +6.184477 +/- 0.001022 secs

# fix local time by adding +6.184477 seconds # time is believed to be correct +/- 0.001022 secs

$ sudo sntp -s ch.pool.ntp.org # set time

$ sudo sntp -j time.nist.gov # adjtime ADJTIME(2) BSD System Calls Manual ADJTIME(2)

NAME adjtime -- correct the time to allow synchronization of the system clock

SYNOPSIS #include

int adjtime(const struct timeval *delta, struct timeval *olddelta);

DESCRIPTION Adjtime() makes small adjustments to the , as returned by gettimeofday(2), advancing or retarding it by the time specified by the timeval delta. If delta is negative, the clock is slowed down by incre- menting it more slowly than normal until the correction is complete. If delta is positive, a larger increment than normal is used. The skew used to perform the correction is generally a fraction of one percent. Thus, the time is always a monotonically increasing function. A time correc- tion from an earlier call to adjtime() may not be finished when adjtime() is called again. If olddelta is non-nil, the structure pointed to will contain, upon return, the number of microseconds still to be corrected from the earlier call. NTP and Leap Seconds RFC 958

5.4. Leap Seconds

A standard mechanism to effect leap-second correction is not a part of this specification. It is expected that the Leap Indicator bits would be set by hand in the primary reference clocks, then trickle down to all other clocks in the network, which would execute the correction at the specified time and reset the bits.

As POSIX, the NTP counter ignores leap seconds. Since 1972, NTP Fcks in SI seconds, with UTC and TAI. But it accumulates mean solar seconds. Leap Second – Jumps 1435708799 Tue Jun 30 23:59:59 UTC 2015 1435708799.5 Tue Jun 30 23:59:59.5 UTC 2015 1435708800 Tue Jun 30 23:59:60 UTC 2015 # leap second 1435708800.5 Tue Jun 30 23:59:60.5 UTC 2015 # leap second 1435708800 Wed Jul 1 00:00:00 UTC 2015 1435708800.5 Wed Jul 1 00:00:00.5 UTC 2015 1435708801 Wed Jul 1 00:00:01 UTC 2015 1435708801.5 Wed Jul 1 00:00:01.5 UTC 2015 Bad: you don’t know which Fmestamp comes first during leap second. Bad: you can’t measure Fme accurately during leap seconds Bad: wriFng a file each second named according to Fmestamp would overwrite data Bad: issue also existe when system clock is changed afer being out of sync Leap Second – Smearing 1435708799 Tue Jun 30 23:59:59 UTC 2015 1435708799.5 Tue Jun 30 23:59:59.5 UTC 2015 1435708800 Tue Jun 30 23:59:60 UTC 2015 # leap second 1435708800.25 Tue Jun 30 23:59:60.5 UTC 2015 # leap second 1435708800.50 Wed Jul 1 00:00:00 UTC 2015 1435708800.75 Wed Jul 1 00:00:00.5 UTC 2015 1435708801 Wed Jul 1 00:00:01 UTC 2015 1435708801.5 Wed Jul 1 00:00:01.5 UTC 2015 Good: Fme is stretched so that gettimeofday() is kept strictly monotonous Bad: this yields neither SI seconds nor UTC Fme. No universal way to smear Fme. ’s way hgps://googleblog.blogspot.ch/2011/09/Fme-technology-and-leaping- seconds.html 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |LI | VN |Mode | Stratum | Poll | Precision | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root Dispersion | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reference ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Reference Timestamp (64) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Origin Timestamp (64) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Receive Timestamp (64) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Transmit Timestamp (64) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 1|1 0 0|0 1 1| Stratum | Poll | Precision | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Root Dispersion | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reference ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Reference Timestamp (64) + A Tiny, 79 characters NTP Client | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 01100011+ = 0x63 = ‘c’ Origin Timestamp (64) + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | $ date +-r$((0x`printf Receive c%47s|nc Timestamp -uw1(64) ntp.metas.ch + 123| xxd -s40| -l4 -p`-64#23GDW0)) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Thu Oct| 22 01:24:34 CEST 2015 | + Transmit Timestamp (64) + | | hgp://seriot.ch/ntp.php+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +------+------+ | ID | Clock Source | +------+------+ | GOES | Geosynchronous Orbit Environment Satellite | | GPS | Global Position System | | GAL | Galileo Positioning System | | PPS | Generic pulse-per-second | | IRIG | Inter-Range Instrumentation Group | | WWVB | LF Radio WWVB Ft. Collins, CO 60 kHz | | DCF | LF Radio DCF77 Mainflingen, DE 77.5 kHz | | HBG | LF Radio HBG Prangins, HB 75 kHz | | MSF | LF Radio MSF Anthorn, UK 60 kHz | | JJY | LF Radio JJY Fukushima, JP 40 kHz, Saga, JP 60 kHz | | LORC | MF Radio LORAN C station, 100 kHz | | TDF | MF Radio Allouis, FR 162 kHz | | CHU | HF Radio CHU Ottawa, Ontario | | WWV | HF Radio WWV Ft. Collins, CO | | WWVH | HF Radio WWVH Kauai, HI | | NIST | NIST telephone modem | | ACTS | NIST telephone modem | | USNO | USNO telephone modem | | PTB | European telephone modem | +------+------+

Timezones

Nepal (UTC+05:45)

New Zealand's Chatham Islands (UTC+12:45) Indiana, USA

• two Fmezones

• daylight saving since 2006

• opposed by rural counFes

Australia The attempts to record the history and predicted future of all computer-based clocks that track .

The Database (often called tz or zoneinfo) contains code and data that represent the history of local time for many representative locations around the globe. It is updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules. IANA Time Zone Database # Switzerland . . . # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Swiss 1941 1942 - MayMon>=1 1:00 1:00 S Rule Swiss 1941 1942 - OctMon>=1 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT1853 Jul 16 # See above comment. 0:29:46 - BMT1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT

/tzdata2015g/europe tons of historical data and comments! Recap

• How Fme is measured (UT, SI)

• How Fme is used in POSIX systems

• How Fme is distributed (shortwaves, NTP, GPS)

• I didn’t speak about relaFvity, exoFc or Fme on other planets… References David W. Allan, Neil Ashby, Clifford C. Hodge The of Timekeeping Hewleg Packard ApplicaFon Note 1289, 1997 hgp://www.allansFme.com/PublicaFons/DWA/Science_Timekeeping/ TheScienceOfTimekeeping.pdf

James Jespersen, Jane Fitz-Randolph From to Atomic Clocks: Understanding Time and NIST, 1999 hgp://~.boulder.nist.gov/general/pdf/1796.pdf

Steve Allen The Future of Leap Seconds in UTC hgp://www.ucolick.org/~sla/leapsecs/