Navigatie overslaan.
Start

Epoch

Zoals velen wellicht zullen weten wordt in Unix/Linux de tijd bijgehouden als het aantal seconden sinds 1 januari 1970 00:00:00h UTC. Tegenwoordig nog steeds als een 32-bit integer, dus er zal een overflow optreden ergens in 2038.

Uitrekenen hoe laat het is aan de hand van een aantal seconden sinds deze Unix Epoch is triviaal, niet?

Triviaal indien je geen rekening houdt met schrikkelseconden.
Sinds 1970 zijn er toch al enkele van van dergelijke seconden geweest. (24 in totaal.)
Dus simpelweg rekenen met 60 seconden per minuut, 3600 seconden per uur en 86400 seconden per dag, geeft je een fout van bijna een halve minuut. Deze fout wordt in de toekomst alleen maar groter aangezien er nog schrikkelseconden toegevoegd zullen worden.

Gelukkig kan Linux dat allemaal perfect aan, en hoef je niet het wiel opnieuw proberen uit te vinden...

UTC tijd:

date -u -d @0
Thu Jan  1 00:00:00 UTC 1970
date -u -d @60
Thu Jan  1 00:01:00 UTC 1970
date -u -d @1234567890
Fri Feb 13 23:31:30 UTC 2009

Met de "normale" tijdzone:

TZ="Europe/Brussels"
date -d @0
Thu Jan  1 01:00:00 CET 1970
date -d @60
Thu Jan  1 01:01:00 CET 1970
date -d @1234567890
Sat Feb 14 00:31:30 CET 2009

Met de "juiste" tijdzone:

TZ="right/Europe/Brussels"
date -d @0
Thu Jan  1 01:00:00 CET 1970
date -d @60
Thu Jan  1 01:01:00 CET 1970
date -d @1234567890
Sat Feb 14 00:31:06 CET 2009

Vanzelsprekend geldt dit ook als je met tijden gaat rekenen.
Bijvoorbeeld: Hoeveel seconden liggen er tussen 2 bepaalde tijdstippen?
Het is dus inderdaad perfect mogelijk dat er 61 seconden in een minuut voorkomen.

De laatste schrikkelseconde werd toegevoegd op 31 december 2008 23:59:60h UTC. Veel mensen hebben dus eigenlijk 1 seconde te vroeg of te laat nieuwjaar gevierd... http://nl.wikipedia.org/wiki/Schrikkelseconde

Middernacht UTC was in België op 1 januari 2009 om 1 uur's nachts.

date -d @1230768022
Thu Jan  1 00:59:59 CET 2009
date -d @1230768023
Thu Jan  1 00:59:60 CET 2009
date -d @1230768024
Thu Jan  1 01:00:00 CET 2009

Ik ben eens benieuwd of Windows ook correct met tijden kan omspringen...