tz-databas (från engelsk tidszondatabas - databas över tidszoner) eller IANA Time Zone Database eller zoneinfo-databas (databas med information om zoner) - gemensamt insamlad information om världens tidszoner , avsedd att användas främst av operativsystem och datorprogram [ 2] . Den kallas ibland för " Olson-databasen " eftersom den grundades av Arthur David Olson [3 ] . Databasen redigeras och underhålls av Paul Eggert [4 ] .
Dess mest kända inslag är Paul Eggerts enhetliga tidszonnamn, som "Amerika/New York" och "Europa/Paris" [5] . Databasen försöker samla information om alla historiska tidszoner och alla deras civila förändringar sedan 1970, Unix-eran [6] . Den innehåller också information om sommartid och till och med ett rekord på skottsekunder [7] .
Upprinnelsen till projektet går tillbaka till åtminstone 1986 [8] . Projektdatabasen, liksom vissa källfiler, är offentliga [9] . Nya versioner av databasen publiceras som regel flera gånger om året [10] .
Hösten 2011 lämnade Astrolabe in en stämningsansökan där Olson och Eggert anklagades för upphovsrättsintrång. I detta avseende slutade Olson den 6 oktober att komma åt databasens ftp-server och publiceringen av e-postlistan [11] . ICANN-organisationen har fattat beslutet att vara värd för en tidszonkunskapsbas på sina servrar. tzdata finns nu på Internet Assigned Numbers Authority (IANA, en division av ICANN) servrar på http://www.iana.org/time-zones . I februari 2012 drog Astrolabe tillbaka sin stämning och utfärdade en offentlig ursäkt - "Vår rättsliga åtgärd mot Mr. Olson och Mr. Eggert baserades på en missuppfattning av lagen. Nu förstår vi att de historiska fakta inte är någons egendom och drar därför tillbaka vårt påstående. Vi beklagar djupt de problem som vår stämningsansökan har orsakat för TZ-databasens underhållare och internetanvändare" [12] .
tzdata-databasen innehåller detaljerad information om alla tidszoner i alla regioner i världen:
En viktig egenskap hos tzdata-databasen är att den lagrar inte bara det aktuella tillståndet för alla världens tidszoner (det vill säga de nuvarande reglerna för beräkning av lokal tid i förhållande till UTC i varje region i världen), utan alla ändringar av dessa regler för beräkna lokal tid för alla regioner för all tid från början av UNIX-epoken ( 1 januari 1970 ). Till exempel, om ett land börjar använda en annan tidszon från ett visst ögonblick, ändrar datumet för övergången till sommartid eller avbryter övergången, så lagras denna information i tzdata fram till sekunden när detta hände.
Tack vare denna funktion är det möjligt att utföra exakta tidsberäkningar för olika länder under olika tidsperioder. Till exempel lokal tid:
Eftersom den säsongsbetonade tidsändringen avbröts i Ryssland 2011 och konstant sommartid fastställdes [13] , och sedan den 26 oktober 2014 - konstant vintertid - under olika tidsperioder, motsvarade Moskvas tidszon UTC +03:00 , UTC +04:00 och UTC +03:00/+04:00. tzdata-databasen hjälper till att lösa sådana oklarheter, eftersom den lagrar detaljerad information om när och hur tiden beräknades i var och en av tidszonerna i var och en av tidsperioderna sedan 1970. [fjorton]
Utvecklargemenskapen försöker göra ändringar "i förväg" - innan de relevanta tidsreglerna träder i kraft, så att användaroperativsystem redan vid det här laget "vet" om ändringarna. Så en stor uppdatering av ryska tidszoner, som påverkar beräkningen av tid från 2:00 den 26 oktober 2014, publicerades i version 2014f redan i augusti 2014.
Tidszoner har unika namn i formen Område / Plats , till exempel Amerika / New York, för att göra dem lättare för människor att förstå. Engelska namn eller deras motsvarigheter väljs, skiljetecken och vanliga suffix utelämnas, mellanslag ersätts med understreck, bindestreck används.
Området inkluderar namnen på kontinenter, hav och "annat" ( Etc ). Uppsättningen av kontinenter och hav inkluderar: Afrika , Amerika , Antarktis , Ishavet , Asien , Atlanten , Australien , Europa , Indiska oceanen och Stilla havet .
tz-databasen publiceras som en uppsättning textfiler med en lista med regler och hoppzoner i ett läsbart format. För användning kompileras dessa textfiler till en uppsättning plattformsoberoende binärfiler för varje tidszon. Koden innehåller en kompilator som heter zic (zoninformationskompilator) samt kod för att läsa dessa filer och använda dem i vanliga API :er som . localtime()mktime()
På de flesta UNIX -liknande operativsystem kan de kompilerade tidszonsfilerna från tzdata-paketet hittas här: /usr/share/zoneinfo/ [14] .
Versioner av tzdata är numrerade enligt följande: först ett fyrsiffrigt nummer som anger år för utgivningen av denna version, sedan en bokstav i det latinska alfabetet i ordning: a, b, c, d, etc. som nya versioner av tzdata är släpps inom ett år. Till exempel, 2010 släpptes tzdata-versioner: 2010a, 2010b, 2010c och vidare upp till version 2010o. Under 2011 släpptes tzdata-versioner: 2011a, 2011b, 2011c... och vidare fram till 2011n, i september 2014 släpptes version 2014h [15] .
Koden och databasen hanteras av en grupp volontärer. Arthur David Olson gör stora ändringar i koden, och Paul Eggert gör de stora ändringarna i databasen. Föreslagna ändringar läggs upp på en e-postlista som vidarebefordrar meddelanden till Usenet-gruppen comp.time.tz. Källfilerna distribuerades via FTP-servern elsie.nci.nih.gov (ej tillgänglig) och senare via ftp.iana.org/tz. Vanligtvis tas dessa filer emot från programvarudistributörer som Debian , kompilerade och sedan paketeras källorna och binärfilerna som en del av distributionen. Slutanvändare kan antingen lita på en process för att uppdatera sin programvara eller få koden direkt från källan på ftp://ftp.iana.org/tz .
CLDR använder UN/LOCODE för att definiera regioner [16] . Det betyder att identifierarna refererar till länder, vilket är något som skaparna av tz-databasen ville undvika.
Databasen används för tidszonsbearbetning och transformationer i många programvarupaket, inklusive:
Olsons bas-ID:n används också av Unicode Common Locale Data Repository (CLDR) och International Components for Unicode (ICU). Till exempel mappar CLDR Windows → Tzid-tabellen Microsoft Windows [23] .
Tidszoner med offset från UTC | |
---|---|
| |
Vissa länder på norra och södra halvklotet använder sommartid . Kursiverade tidszoner används för närvarande inte. |