Baza de date tz

baza de date tz (din limba engleză baza de  date fus orar  - baza de date a fusurilor orare) sau IANA Time Zone Database sau zoneinfo baza de date  (bază de date de informații despre zone) - informații colectate în comun despre fusurile orare mondiale , destinate utilizării în principal de sistemele de operare și programele de calculator [ 2] . Este uneori denumită " baza de date Olson " deoarece a fost fondată de Arthur David Olson [ 3 ] . Baza de date este editată și întreținută de Paul Eggert [4 ] .

Caracteristica sa cea mai faimoasă este denumirea unificată a fusului orar al lui Paul Eggert, cum ar fi „America/New York” și „Europe/Paris” [5] . Baza de date încearcă să colecteze informații despre toate fusurile orare istorice și despre toate schimbările lor civile din 1970, epoca Unix [6] . Include, de asemenea, informații despre ora de vară și chiar și o înregistrare a secundelor bisecătoare [7] .

Originile proiectului datează cel puțin din 1986 [8] . Baza de date a proiectului, precum și unele fișiere sursă, sunt în domeniul public [9] . Noile versiuni ale bazei de date sunt publicate, de regulă, de mai multe ori pe an [10] .

În toamna lui 2011, Astrolabe a intentat un proces acuzând Olson și Eggert de încălcarea drepturilor de autor. În acest sens, pe 6 octombrie, Olson a încetat accesarea serverului ftp al bazei de date și publicarea listei de corespondență [11] . Organizația ICANN a luat decizia de a găzdui o bază de cunoștințe de fus orar pe serverele sale. tzdata este acum găzduit pe serverele Internet Assigned Numbers Authority (IANA, o divizie a ICANN) la http://www.iana.org/time-zones . În februarie 2012, Astrolabe și-a retras procesul, emitând scuze publice - „Acțiunea noastră în justiție împotriva dlui Olson și a domnului Eggert s-a bazat pe o înțelegere greșită a legii. Acum înțelegem că faptele istorice nu sunt proprietatea nimănui și, în consecință, ne retragem pretenția. Regretăm profund problemele pe care procesul nostru le-a cauzat întreținătorilor bazei de date TZ și utilizatorilor de internet” [12] .

Funcționalitate

Baza de date tzdata conține informații detaliate despre toate fusurile orare din toate regiunile lumii:

O caracteristică importantă a bazei de date tzdata este că stochează nu numai starea curentă a tuturor fusurilor orare mondiale (adică regulile actuale pentru calcularea orei locale în raport cu UTC în fiecare regiune a lumii), ci și toate modificările aduse acestor reguli pentru calcularea orei locale pentru toate regiunile pentru toate timpurile de la începutul epocii UNIX ( 1 ianuarie 1970 ). De exemplu, dacă o țară începe să folosească un fus orar diferit dintr-un anumit moment, schimbă data tranziției la ora de vară sau anulează tranziția, atunci această informație este stocată în tzdata până la secunda când s-a întâmplat acest lucru.

Datorită acestei funcții, este posibil să se efectueze calcule precise de timp pentru diferite țări pentru diferite perioade de timp. De exemplu, ora locală:

Deoarece schimbarea sezonieră a orei a fost anulată în Rusia în 2011 și a fost stabilită ora de vară constantă [13] , iar apoi din 26 octombrie 2014 - ora constantă de iarnă - în diferite perioade de timp, fusul orar al Moscovei corespundea UTC +03:00. , UTC +04: 00 și UTC +03:00/+04:00. Baza de date tzdata ajută la rezolvarea unor astfel de ambiguități, deoarece stochează informații detaliate despre când și cum a fost calculată ora în fiecare dintre fusurile orare din fiecare dintre perioadele de timp începând cu 1970. [paisprezece]

Comunitatea de dezvoltatori încearcă să facă modificări „în avans” - înainte ca regulile de sincronizare relevante să intre în vigoare, astfel încât, până în acest moment, sistemele de operare ale utilizatorilor „știu” deja despre modificări. Deci, o actualizare mare a fusurilor orare rusești, care afectează calcularea timpului de la 2:00 pe 26 octombrie 2014, a fost publicată în versiunea 2014f deja în august 2014.

Denumirea

Fusurile orare au nume unice sub forma Zonă / Locație , cum ar fi America / New York, pentru a le face mai ușor de înțeles de către oameni. Sunt selectate nume în limba engleză sau echivalentele lor, semnele de punctuație și sufixele comune sunt omise, spațiile sunt înlocuite cu caractere de subliniere, sunt folosite cratimele.

Zona include numele continentelor, oceanelor și „altele” ( etc ). Setul de continente și oceane include: Africa , America , Antarctica , Oceanul Arctic , Asia , Oceanul Atlantic , Australia , Europa , Oceanul Indian și Oceanul Pacific .

Formate de fișiere

Baza de date tz este publicată ca un set de fișiere text cu o listă de reguli și zone de salt într-un format care poate fi citit de om. Pentru utilizare, aceste fișiere text sunt compilate într-un set de fișiere binare independente de platformă pentru fiecare fus orar. Codul include un compilator numit zic (compilator de informații despre zonă), precum și cod pentru a citi aceste fișiere și a le utiliza în API-urilocaltime() standard precum mktime().

Pe majoritatea sistemelor de operare asemănătoare UNIX , fișierele de fus orar compilate din pachetul tzdata pot fi găsite aici: /usr/share/zoneinfo/ [14] .

Versiunile de tzdata sunt numerotate după cum urmează: mai întâi, un număr din patru cifre care indică anul lansării acestei versiuni, apoi o literă a alfabetului latin în ordine: a, b, c, d etc. după cum sunt noile versiuni ale tzdata eliberat în termen de un an. De exemplu, în 2010, au fost lansate versiuni tzdata: 2010a, 2010b, 2010c și mai departe până la versiunea 2010o. În 2011, au fost lansate versiunile tzdata: 2011a, 2011b, 2011c… și mai departe până în 2011n, în septembrie 2014 a fost lansată versiunea 2014h [15] .

Management

Codul și baza de date sunt gestionate de un grup de voluntari. Arthur David Olson face modificări majore în cod, iar Paul Eggert face modificări majore în baza de date. Modificările sugerate sunt postate pe o listă de corespondență care trimite mesaje către grupul Usenet comp.time.tz. Fișierele sursă au fost distribuite prin serverul FTP elsie.nci.nih.gov (nu este disponibil), iar mai târziu prin ftp.iana.org/tz. De obicei, aceste fișiere sunt primite de la distribuitori de software, cum ar fi Debian , compilate, iar apoi sursele și binarele sunt împachetate ca parte a distribuției. Utilizatorii finali pot fie să se bazeze pe un proces pentru a-și actualiza software-ul, fie să obțină codul direct de la sursă la ftp://ftp.iana.org/tz .

Utilizare în alte standarde

CLDR folosește UN/LOCODE pentru a defini regiunile [16] . Aceasta înseamnă că identificatorii se referă la țări, ceea ce creatorii bazei de date tz au vrut să evite.

Utilizare în software

Baza de date este utilizată pentru procesarea și transformările fusului orar în multe pachete software, inclusiv:

ID-urile de bază ale lui Olson sunt, de asemenea, utilizate de Unicode Common Locale Data Repository (CLDR) și International Components for Unicode (ICU). De exemplu, CLDR Windows → tabelul Tzid mapează Microsoft Windows [23] .

Note

  1. Mueller, Erik. O hartă a fusurilor orare TZ ale lumii . Arhivat din original la 1 august 2012.
  2. Eggert, Paul; Olson, Arthur David. Surse pentru date privind fusul orar și ora de vară (29 noiembrie 2007). Preluat la 3 decembrie 2007. Arhivat din original la 1 august 2012.
  3. Olson, Arthur David Ați rezolvat problema fusului orar? Alte probleme. Nouă pagină de manual ctime . lista de corespondență tz (16 decembrie 1986).
  4. Eggert, Paul Re: FW: IANA time zone registration - proposal . lista de corespondență tz (ianuarie 2005).
  5. Eggert, Paul propunere pentru nume de fus orar . lista de corespondență tz (20 octombrie 1993).
  6. Olson, Arthur David Re:ist of issues . lista de corespondență tz (18 martie 1987).
  7. Devine, Bob secunde sărace; [0-60] este ok . lista de corespondență tz (2 iunie 1988).
  8. Olson, Arthur David seismo!elsie!tz ; versiuni noi de chestii de fus orar . lista de corespondență tz (24 noiembrie 1986).
  9. Eggert, Paul întrebări și comentarii pe http://tycho.usno.navy.mil/tzones.html . lista de corespondență tz (11 noiembrie 1995).
  10. zoneinfo arhivele tzcode și tzdata (FTP) . Preluat: 30 octombrie 2007.  (link indisponibil)
  11. Olson, Arthur David. Costum civil; oprire ftp; închiderea listei de corespondență  (engleză) (6 octombrie 2011). Consultat la 8 octombrie 2011. Arhivat din original la 1 august 2012.
  12. ↑ EFF Wins Protection for Time Zone Database  . Electronic Frontier Foundation (22 februarie 2012). Consultat la 23 februarie 2012. Arhivat din original pe 23 februarie 2012. .
  13. Proiectul de lege nr. 509727-5 privind calculul timpului (link inaccesibil) . Consultat la 14 octombrie 2011. Arhivat din original la 12 mai 2013. 
  14. 1 2 roman_tik: Tzdata este baza de cunoștințe a fusului orar global . Preluat la 30 septembrie 2016. Arhivat din original la 7 august 2016.
  15. IANA - Baza de date fus orar . Preluat la 26 octombrie 2011. Arhivat din original la 8 martie 2013.
  16. Extensia Unicode Locale („u”) pentru BCP 47 - CLDR - Unicode Common Locale Data Repository . Preluat la 7 iunie 2011. Arhivat din original la 28 iulie 2011.
  17. Suport și configurare pentru fusul orar Olson . Informații AIX 7.1 . IBM. Preluat la 12 martie 2011. Arhivat din original la 1 august 2012.
  18. Gestionarea variabilei fus orar (downlink) . IBM (2 februarie 2007). Preluat la 11 martie 2011. Arhivat din original la 13 iulie 2011. 
  19. 1 2 AIX O/S actualizat pentru a suporta modificarea orei de vară din 2007 . IBM (18 octombrie 2007). Preluat la 12 martie 2011. Arhivat din original la 1 august 2012.
  20. Modificări ale orei de vară din 2007 pentru Unix . Centrul Academic de Calcul și Comunicații, Universitatea Illinois din Chicago (25 februarie 2007). Preluat la 18 martie 2008. Arhivat din original la 1 august 2012. )
  21. Wickremasinghe, Christopher. Introducerea orei de vară în Australia de Vest 2006 . AIX Wiki . IBM (30 martie 2009). Preluat la 11 martie 2011. Arhivat din original la 1 august 2012.
  22. Oracle Database Globalization Support Guide 10g Release 1 (10.1): Capitolul 4, Secțiunea „Alegerea unui fișier de fus orar  ” . - Oracle Corporation , 2004. - P. 4-14.
  23. Windows → Tzid . Consorțiul Unicode (12 noiembrie 2007). Consultat la 17 februarie 2008. Arhivat din original la 1 august 2012.