Baza de date IANA a fusurilor orare (tz): Ce este și de ce contează

Publicat la: 9:00 AM , de Echipa OraIn.app

Ce este baza de date IANA a fusurilor orare (tz/tzdata), cum denumește zone ca America/New_York, de ce decalajele nu sunt suficiente și cine depinde de ea.

O hartă mondială cu granițe ale fusurilor orare și identificatori IANA precum America/New_York, Europe/London și Asia/Kolkata

Ce Este Cu Adevărat Baza de Date IANA pentru Fusuri Orar

Dacă ai lucrat vreodată cu date și ore în software, te-ai bazat pe Baza de Date IANA pentru Fusuri Orar, chiar dacă nu știai. Este cunoscută sub mai multe nume — baza de date tz, tzdata, baza de date Olson sau zoneinfo — dar toate se referă la același lucru: un catalog colaborativ, disponibil gratuit, al fusurilor orare ale lumii și al regulilor care le guvernează.

Cuvântul „catalog” nu face dreptate. Baza de date nu listează doar care regiuni se află la ce decalaj UTC. Înregistrează istoria completă a cronometrării civile pentru fiecare regiune — fiecare schimbare de decalaj, fiecare tranziție de oră de vară, fiecare schimbare de ceas din timpul războiului și fiecare regulă viitoare programată — mergând înapoi, în multe cazuri, până la mijlocul secolului al XIX-lea, când ora locală medie a cedat locul fusurilor standardizate. Când aplicația ta de calendar arată corect că o întâlnire din 1985 s-a petrecut cu o oră diferență față de aceeași oră pe perete astăzi, aceasta este munca bazei de date tz.

Este bazată pe text, lizibilă pentru oameni și mică. Forma binară compilată care vine pe computerul tău are doar câțiva megaocteți. Totuși, codifică unul dintre cele mai discret complicate seturi de date din informatică.

O Scurtă Istorie

Proiectul a început în anii 1980 sub conducerea lui Arthur David Olson, care a asamblat prima versiune și a găzduit-o pe servere la Institutele Naționale de Sănătate ale SUA. Timp de decenii, a fost întreținut în mare parte printr-un efort voluntar coordonat printr-o listă de discuții publică, motiv pentru care numele mai vechi „baza de date Olson” încă apare în documentație.

Paul Eggert a preluat rolul de editor principal și rămâne coordonatorul de lungă durată al proiectului. Compilația sa a documentului însoțitor theory.html și istoricul meticulos al commit-urilor au transformat baza de date într-o referință atât istorică, cât și tehnică.

În 2011, după o dispută legală scurtă, dar alarmantă, legată de datele istorice, administrarea a trecut la Internet Assigned Numbers Authority (IANA), aceeași entitate care coordonează alte resurse de bază ale internetului. IANA publică acum versiuni oficiale, motiv pentru care „baza de date IANA pentru fusuri orar” a devenit numele canonic. Munca este încă făcută de aceeași comunitate de contribuitori; IANA oferă un cămin instituțional și un punct de distribuție stabil.

Convenția de Denumire: Area/Location

Una dintre cele mai distinctive caracteristici ale bazei de date este modul în care numește fusurile. În loc de nume de țări sau decalaje brute, folosește un format Area/Location, aproape întotdeauna ancorat de un oraș reprezentativ:

  • America/New_York
  • Europe/London
  • Asia/Kolkata
  • Australia/Sydney

„Area” este de obicei un continent sau ocean (America, Europe, Asia, Pacific), iar „Location” este un oraș binecunoscut din cadrul fusului. Această alegere pare ciudată până când înțelegi rațiunea din spatele ei.

Orașele sunt stabile; granițele politice și decalajele nu sunt. Țările se despart, se unesc, își schimbă numele și își modifică ceasurile. Un oraș, prin contrast, este un punct geografic fix cu o istorie continuă a cronometrării. A numi un fus America/New_York în loc de „Ora de Est a SUA” sau „UTC-5” înseamnă că identificatorul rămâne valid chiar și pe măsură ce regulile asociate evoluează.

Baza de date, de asemenea, evită în mod deliberat numele de țări pentru a ocoli disputele politice și pentru că o singură țară conține adesea mai multe fusuri — Statele Unite au mai mult de o duzină. Alege cel mai populat sau mai semnificativ istoric oraș din fiecare fus distinct ca etichetă neutră. Când două regiuni au avut o istorie identică a ceasurilor din 1970, ele împart un fus; în momentul în care istoriile lor diverg, primesc intrări separate.

De Ce Decalajele Brute Nu Sunt Suficiente

Un instinct comun al începătorilor este să stocheze o oră ca „UTC+5:30” și să considere problema rezolvată. Acest lucru funcționează pentru un singur moment, dar eșuează imediat ce trebuie să raționezi despre evenimente viitoare sau recurente, deoarece decalajele nu sunt proprietăți statice ale unui loc. Ele sunt rezultatul unor reguli pe care guvernele le schimbă constant și adesea brusc.

Ia în considerare câteva exemple reale pe care baza de date a trebuit să le absoarbă:

  • Samoa a sărit complet peste 30 decembrie 2011. Pentru a-și alinia ziua de lucru cu Australia și Noua Zeelandă, în loc de Statele Unite, Samoa a sărit peste Linia Internațională de Dată, trecând de la UTC-11 la UTC+13. Pentru oricine din insule, acea vineri pur și simplu nu a existat.
  • Țările abolesc, adoptă sau reprogramează ora de vară cu puțină notificare. Uniunea Europeană a dezbătut eliminarea orei de vară; mai multe țări și state americane și-au schimbat regulile orei de vară în ultimele decenii. Turcia, Rusia și altele și-au schimbat direct decalajele standard.
  • Datele de început și sfârșit ale orei de vară se modifică. Statele Unite și-au mutat granițele orei de vară în 2007. Orice sistem care a codificat dur vechea regulă a produs în tăcere ore greșite săptămâni întregi în fiecare an.

Dacă stochezi doar un decalaj, nu poți răspunde la întrebarea „care va fi ora locală în Santiago pe 15 noiembrie anul viitor?” — deoarece răspunsul depinde de reguli care poate nici măcar nu sunt finalizate încă. Stocarea identificatorului de fus (America/Santiago) plus baza de date permite software-ului să calculeze decalajul corect pentru orice moment, trecut sau viitor, și să-l recalculeze automat când regulile se schimbă.

Aceasta este propunerea de valoare centrală: baza de date tz separă identitatea unui loc de regulile mereu în schimbare care determină ceasul său.

Cum Este Întreținută

Întreținerea are loc în mod deschis. Propunerile de modificare — o nouă regulă de oră de vară, o dată istorică corectată, un anunț guvernamental — sunt discutate pe lista de discuții publică tz, unde contribuitorii citează gazete oficiale, rapoarte de știri și decrete guvernamentale ca dovezi. Acuratețea este luată în serios; modificările aduse datelor istorice, în special, sunt analizate cu atenție în raport cu sursele primare.

Versiunile sunt numerotate cu un an și o literă: 2024a, 2024b, 2024c și așa mai departe. Numărul este anul; litera crește cu fiecare versiune din acel an. Deoarece guvernele anunță schimbările de ceas pe propriile lor programe imprevizibile, nu există un ritm fix de lansare — un an liniștit poate avea două versiuni, în timp ce un an cu turbulențe politice are multe. Sistemele sunt așteptate să se actualizeze prompt, deoarece o bază de date învechită poate însemna afișarea orei greșite după ce o regulă nouă intră în vigoare.

Cine Depinde de Ea

Aproape orice.

  • Sisteme de operare. Distribuțiile Linux livrează tzdata ca pachet de bază. macOS derivă datele sale de fus din aceeași sursă. Windows folosește propriile fusuri bazate pe registry din motive istorice, dar expune fusurile IANA prin biblioteca ICU și API-urile moderne.
  • Limbaje de programare. Practic, fiecare bibliotecă matură de date/ore citește sau include baza de date tz: zoneinfo din Python, java.time din Java, proiectul ICU, PostgreSQL, motoarele JavaScript prin ICU, Ruby, PHP și multe altele.
  • Aplicații. Calendare, sisteme de rezervări, platforme de tranzacționare financiară, instrumente de analiză a jurnalelor și servicii de programare se bazează pe ea, de obicei fără ca dezvoltatorii lor să se gândească la asta.

Această ubicuitate este exact motivul pentru care baza de date contează atât de mult. O singură sursă de adevăr, comună și atent întreținută, înseamnă că o întâlnire programată într-un sistem se afișează corect în altul, peste sisteme de operare și limbaje, decenii în trecut sau viitor.

Dacă vrei să explorezi fusurile în sine, răsfoiește lista completă a fusuri orare IANA sau vezi cum se mapează pe glob în directorul nostru de toate fusurile orare.

Întrebări Frecvente

Este baza de date tz același lucru cu tzdata, zoneinfo și baza de date Olson?

Da. Toate acestea sunt nume pentru același proiect. „tzdata” se referă de obicei la fișierele de date așa cum sunt ambalate pentru un sistem de operare, „zoneinfo” la directorul binar compilat, iar „baza de date Olson” este numele istoric mai vechi, după fondatorul Arthur David Olson. Astăzi, numele oficial este Baza de Date IANA pentru Fusuri Orar.

Cât de des este actualizată baza de date?

Nu există un program fix. Lansările sunt declanșate de evenimente din lumea reală — un guvern care își schimbă regulile orei de vară sau decalajul standard, sau o corectare a datelor istorice. Unii ani au o singură lansare; alții au mai multe. Fiecare este numită ca 2024a, 2024b, incrementând litera pe parcursul anului.

De ce numește fusurile după orașe precum America/New_York?

Orașele sunt fixe geografic și au istorii continue de cronometrare, în timp ce țările, granițele și decalajele se schimbă în timp. Folosirea unui oraș reprezentativ oferă fiecărui fus un identificator stabil, neutru politic, care rămâne valid chiar și atunci când regulile subiacente de oră de vară sau decalaj se schimbă.

Pot stoca doar un decalaj UTC în loc de un nume de fus?

Doar pentru un singur moment fix. Pentru evenimente viitoare sau recurente, ar trebui să stochezi identificatorul de fus, deoarece decalajele se schimbă odată cu ora de vară și deciziile guvernamentale. Numele fusului plus baza de date permite software-ului să calculeze automat decalajul corect pentru orice dată.

Cine conduce proiectul acum?

Este publicat de IANA, care a preluat administrarea în 2011, și coordonat de Paul Eggert, cu o comunitate de contribuitori care lucrează prin lista de discuții publică tz. Munca tehnică rămâne un efort colaborativ, condus de voluntari.

Ora actuală în aceste orașe:

New York · Londra · Tokyo · Paris · Hong Kong · Singapore · Dubai · Los Angeles · Shanghai · Beijing · Sydney · Mumbai

Ora actuală în țări:

🇺🇸 Statele Unite | 🇨🇳 China | 🇮🇳 India | 🇬🇧 Regatul Unit | 🇩🇪 Germania | 🇯🇵 Japonia | 🇫🇷 Franța | 🇨🇦 Canada | 🇦🇺 Úc | 🇧🇷 Brazilia |

Ora actuală în fusuri orare:

UTC | GMT | CET | PST | MST | CST | EST | EET | IST | JST | AEST | SAST | MSK | NZST

Gratuit widget-uri pentru webmasteri:

Widget gratuit pentru ceas analogic | Widget de ceas digital gratuit | Widget de ceas text gratuit | Widget de ceas cu cuvinte gratuit