När din bärbara dator i tysthet backar tillbaka en timme en söndagsmorgon, eller när en kalenderinbjudan från en kollega i São Paulo landar exakt på det ögonblick du förväntade dig, så är det samma osynliga sak som gjort jobbet: en fritt underhållen datamängd som nästan alla operativsystem, programmeringsspråk och webbtjänster behandlar som auktoriteten för civil tid. Det är IANA Time Zone Database — även kallad tz-databasen, tzdata, eller historiskt Olson-databasen, efter Arthur David Olson, som började underhålla den på 1980-talet.
Tidszoner känns som geografi, men de är politik. En regering kan besluta att avsluta sommartiden tidigt, ändra sin standardoffset, eller hoppa över en dag helt och hållet — ibland med bara några veckors varsel. Tz-databasen är den gemensamma regelboken som absorberar dessa förändringar så att frågan "vad är klockan i London när det är 15:00 i New York?" har ett enda konsekvent svar överallt. Den här artikeln förklarar vad databasen faktiskt innehåller, hur en uppdatering reser från ett regeringsdekret till din telefon, och varför den lockande genvägen att lagra en fast offset som "UTC+1" är en bugg som väntar på att hända.
Vad databasen faktiskt är
Tz-databasen är en uppsättning textfiler i klartext som beskriver reglerna för lokal klocktid runtom i världen — både nu och så långt tillbaka som dokumentationen rimligen tillåter. Du kör den inte; programvara läser den. Vem som helst kan ladda ner den, och datan har inga licensbegränsningar, vilket är en del av anledningen till att den hamnade överallt.
Varje region identifieras med ett zonnamn på formen `Area/Location`: `America/New_York`, `Europe/London`, `Asia/Kolkata`, `Australia/Lord_Howe`. Platsen är vanligtvis en representativ stad, inte ett land, och det är medvetet. Ett enda land kan omfatta flera uppsättningar regler, och stadsnamn är betydligt stabilare över decennier än gränser eller landsnamn. Databasen definierar några hundra av dessa zoner.
För varje zon registrerar datan:
- Basoffseten från UTC — till exempel är `America/New_York` UTC−5 på vintern (EST).
- De gällande sommartidsreglerna, inklusive exakt när de börjar och slutar varje år.
- De historiska övergångarna — varje tidigare ändring av den zonens offset eller DST-regel.
- De förkortningar som gällde under varje period, såsom EST, EDT, CET eller IST.
Den historiska dimensionen är det som skiljer tzdata från en enkel offset-tabell. Den vet inte bara att New York är UTC−5 idag. Den vet att USA flyttade sitt DST-startdatum tidigare med början 2007, och den tillämpar rätt regel för vilket datum du än frågar om. Det är därför en välbyggd konverterare kan ange offseten för ett datum 1995 lika säkert som för nästa tisdag.
Zoner, länkar och de förvirrande "Etc"-posterna
Databasen definierar också länkar — alias som pekar ett namn mot ett annat så att namnbyten inte förstör befintliga system. När Indiens zon fastnade för `Asia/Kolkata` behölls det äldre `Asia/Calcutta` som en länk till den. Båda löses fortfarande upp till UTC+5:30.
Det finns också `Etc/`-zoner för fasta offsets, inklusive `Etc/UTC` och den ökänt bakvända `Etc/GMT+5`. Den är UTC−5, inte UTC+5: namnen `Etc/GMT±` inverterar tecknet enligt en gammal POSIX-konvention. Dessa zoner med fast offset finns för nischade tekniska behov. För varje plats där riktiga människor bor vill du ha en geografisk zon — eftersom bara en geografisk zon känner till sommartid och framtida regeländringar. Nästa avsnitt förklarar varför det spelar roll.
Varför tidszonsregler ändras så ofta
Folk antar att tidszoner är fastställda. Det är de inte. Tz-databasen uppdateras flera gånger under ett typiskt år, ibland fler. Versioner numreras efter år och en bokstav — `2023a`, `2023b`, `2024a` — och varje samlar de regeländringar och korrigeringar som ackumulerats sedan den förra.
Förändringarna kommer från en handfull återkommande källor:
- Regeringar som justerar DST-policy. Ett land börjar tillämpa sommartid, slutar, eller flyttar övergångsdatumen. Europeiska unionen har diskuterat att avskaffa det säsongsbetonade klockbytet i flera år, och flera amerikanska delstater har antagit lagförslag som söker permanent DST men som väntar på federalt godkännande.
- Regelrätta offsetändringar. Ibland antar ett territorium en helt annan standardtid. Det klassiska fallet: i slutet av 2011 hoppade Samoa över den 30 december helt och hållet, och hoppade till andra sidan av den internationella datumlinjen för att rikta in sin arbetsvecka mot Australien och Nya Zeeland istället för USA:s västkust.
- Tillkännagivanden med kort varsel. Detta är den svåra delen. En regering tillkännager ibland en förändring veckor — eller dagar — innan den träder i kraft. Underhållare och efterföljande leverantörer kapplöper sedan om att leverera och distribuera en uppdatering innan datumet kommer.
- Historiska korrigeringar. Forskare hittar gamla stadgar, tidningsarkiv eller järnvägstidtabeller som förfinar vad en zons offset *var* för decennier sedan, och dessa rättelser vävs också in.
Den krassa slutsatsen: en plats regel är bara känd fram till nästa regeringsbeslut. Varje system som antar att dagens regler är permanenta kommer förr eller senare att ha fel.
Hur en uppdatering når din telefon
Databasen underhålls av en gemenskap av volontärer som samordnar sig på en offentlig e-postlista, där IANA (Internet Assigned Numbers Authority) fungerar som det officiella hemmet och distributionspunkten. En förändring reser vanligtvis så här:
1. Någon rapporterar den på tz-e-postlistan, vanligtvis med hänvisning till en officiell kungörelse, ett officiellt tillkännagivande eller primärkällsforskning. 2. Underhållare verifierar och diskuterar den, och commit:ar sedan ändringen till den relevanta datafilen. 3. IANA publicerar en ny release med en versionstagg såsom `2024a`. 4. Efterföljande konsumenter tar in den — Linux-distributioner, macOS, språkruntimes och stora plattformar. (Windows behåller sitt eget tidszonsformat och mappar mot IANA-namnen.) 5. Din enhet hämtar den via en OS-uppdatering, en appuppdatering, eller, på servrar, ett paket såsom `tzdata`.
Det är också i den här pipelinen som verkliga buggar föds. Databasen kan vara helt aktuell medan en specifik enhet inte är det. En bärbar dator som missade uppdateringen fortsätter att tillämpa den gamla regeln, och klockan är fel på övergångsdagen. Glappet mellan "regeln ändrades" och "varje enhet vet" är den enskilt största källan till tidszonsbuggar du faktiskt kommer att stöta på.
Varför hårdkodade offsets blir inaktuella
Här är misstaget som hela systemet finns till för att förhindra. En utvecklare bestämmer sig för att lagra en användares tidszon som ett enkelt tal — `+1` — eftersom det ser effektivt ut. Det är trasigt på tre sätt samtidigt.
- Det ignorerar DST. `Europe/Paris` är UTC+1 på vintern och UTC+2 på sommaren. En lagrad `+1` stämmer bara för en del av året, och varje vår och höst driver matematiken iväg med en timme.
- Det kan inte representera själva övergången. På morgonen då en klocka ställs fram finns en lokal timme inte alls; på morgonen då den ställs tillbaka inträffar en lokal timme två gånger. En naken offset har inget sätt att säga "02:30 inträffade två gånger." En namngiven zon, tillämpad genom korrekt datumlogik, har det.
- Det fryser en regel som kommer att ändras. Om en region avskaffar DST nästa år levererar tz-databasen en uppdatering och varje regelföljande system anpassar sig automatiskt. En hårdkodad `+1` fortsätter att tillämpa förra årets policy för evigt, och producerar i tysthet fel tider.
Ett genomarbetat exempel, med verifierade offsets
Schemalägg ett återkommande samtal varje måndag klockan 09:00 i Berlin, med någon i Chicago som ansluter. Se hur glappet rör sig över året:
- Mitten av januari: Berlin har CET (UTC+1), Chicago har CST (UTC−6). Glappet är 7 timmar, så samtalet är 02:00 i Chicago.
- Mitten av juli: båda har gått över till sommartid — Berlin CEST (UTC+2), Chicago CDT (UTC−5). Fortfarande 7 timmar, så fortfarande 02:00 i Chicago.
- Mitten av mars: de två länderna byter *inte* samma dag. År 2025 ställde USA fram klockan den 9 mars, men EU inte förrän den 30 mars. Under dessa tre veckor hade Chicago redan CDT (UTC−5) medan Berlin fortfarande hade CET (UTC+1) — ett glapp på bara 6 timmar, vilket gör samtalet till 03:00 i Chicago.
Ett verktyg som lagrade "Berlin = +1, Chicago = −6" skulle ha en timme fel i juli *och* under överlappsveckorna i mars. Bara ett system som löser upp de namngivna zonerna mot det *specifika datumet* får varje vecka rätt. Det är exakt så Timezios mötesplanerare och konverterare fungerar: de frågar vilken plats du menar, och tillämpar sedan de aktuella reglerna för datumet i fråga snarare än ett fryst tal.
En praktisk checklista
Du behöver aldrig öppna en tzdata-fil för att dra nytta av hur den fungerar. Fem vanor överför värdet till vardaglig användning:
- Lagra och dela platser, inte offsets. "Jag är i `America/Los_Angeles`" överlever DST och policyändringar. "Jag är på UTC−8" gör det inte.
- Håll dina system uppdaterade. Den vanligaste anledningen till att en klocka är fel under en övergångshelg är en enhet som missade den senaste `tzdata`-releasen. OS- och appuppdateringar är hur rättelsen når dig.
- Misstro varje verktyg som visar en enda fast offset för en stad. Om det inte kan ta hänsyn till datumet kan det inte ta hänsyn till DST.
- Dubbelkolla gränsöverskridande händelser kring klockbyteshelger och efter varje regeringstillkännagivande. Det är precis då glappet mellan regel och uppdatering biter hårdast.
- Behandla varje svar som preliminärt. Dagens korrekta konvertering är korrekt bara fram till nästa dekret.
IANA Time Zone Database är en av de mest tystlåtna delarna av delad infrastruktur på nätet — en volontärunderhållen uppsättning textfiler som den digitala världen lutar sig mot för civil tid. Den fungerar eftersom den behandlar tidszoner som det de verkligen är: ett rörligt mål format av politik, inte ett fast rutnät ritat på en karta. Varje korrekt konvertering du förlitar dig på, Timezios inkluderad, beror på att någon, någonstans, har skrivit ned den senaste regeln och levererat den innan klockorna ändrades.