ISO 8601
Exemplu: data și ora UTC |
2021-08-21T09: 20Z |
ISO 8601 ( Elemente de date și formate de schimb - Schimb de informații - Reprezentarea datelor și orelor ) este un standard internațional pentru reprezentarea datelor și orelor .
fundal
Acest standard a fost publicat pentru prima dată la 15 iunie 1988 pentru a standardiza mai multe standarde ISO vechi: ISO 2014 , ISO 2015 , ISO 2711 , ISO 3307 și ISO 4031 . A fost actualizat la 21 decembrie 2000 și ulterior cu actualul standard ISO 8601: 2004 publicat la 3 decembrie 2004 .
Notarea numerică big-endiană a datelor a fost introdusă de ISO 2014, ISO 2015 introduce sistemul de numerotare săptămânal, în timp ce în ISO 2711 zile au fost identificate prin numere ordinale.
Necesitatea unui standard apare din faptul că data formulată ca 04-09-03 poate indica:
- 4 septembrie 2003 (sau chiar 1903) în Europa și în alte țări,
- 9 aprilie 2003 în Statele Unite ale Americii ,
- 3 septembrie 2004 conform standardului ISO 8601. [1]
După cum puteți înțelege cu ușurință, această incertitudine poate crea multe probleme în comerțul și comunicațiile internaționale.
ISO 8601 este în prezent împărțit în 8601-1 și 8601-2; ediția actuală este 2019.
Principii generale
Valorile datei și orei sunt organizate de la cele mai semnificative la cele mai puțin semnificative. Fiecare valoare (de ani, luni, minute și așa mai departe) trebuie să aibă un număr fix de cifre la care se poate ajunge adăugând zerouri; de exemplu 3 septembrie 2006 trebuie scris 2006-09-03 și nu 2006-9-3.
Sunt posibile două tipuri de reprezentare: forma de bază cu cel mai mic număr de caractere, forma extinsă pentru o ușurință mai mare a citirii de către utilizatorul uman. De exemplu, 2005-07-24 este în formă extinsă, în timp ce în forma de bază este 20050724, acest lucru este posibil fără ambiguitate tocmai pentru că fiecare valoare trebuie să aibă un număr fix de cifre.
Parametrii mai puțin semnificativi pot fi omiși, deci 2004-05 înseamnă „mai 2004”. În cele din urmă, standardul permite utilizarea valorilor zecimale în secunde când este necesară o precizie ridicată.
La tine acasa
ISO 8601 folosește calendarul gregorian , care este un standard de facto în comerțul internațional.
Calendarul gregorian este, de asemenea, utilizat pentru date anterioare datei de 15 octombrie 1582 (1582-10-15), data introducerii de către Papa Grigore al XIII-lea a acestui calendar. Ziua precedentă, 4 octombrie 1582, conform calendarului iulian , este denumită apoi 1582-10-14. [2]
Prin urmare, este un calendar gregorian analeptic (analeptic în sensul reconstituit, datat).
Ani
± AAAA |
---|
Standardul prevede utilizarea a patru cifre pentru a evita bug-ul mileniului , care este o ambiguitate în indicația anului. Anii dinaintea lui Hristos (î.Hr.) trebuie neapărat să fie precedați de un semn - , în afară de anul 1 î.Hr., așa cum se explică mai jos. Pentru cei de după Hristos (AD) este posibil, dar nu obligatoriu, să pună un semn + .
Pentru anii dinaintea lui Hristos, standardul ISO adoptă notația astronomilor care prevede anul zero, absentă în notația istoricilor; anul 1 î.Hr. este indicat cu 0000, anul 2 î.Hr. cu -0001 și așa mai departe; de exemplu, data de 1 martie 1 î.Hr. este scrisă 0000-03-01; data 1 martie 2 î.Hr. este scrisă -0001-03-01.
Versiunea ISO 8601: 2000 a dat posibilitatea de a scrie anul cu doar două cifre, dar acest formular a fost suprimat în versiunea 2004, unde trebuie folosite întotdeauna cel puțin patru cifre.
Săptămâni
AAAA-Www | sau | AAAAWww |
---|---|---|
AAAA-Www-J | sau | AAAAAww |
Un alt mod de a indica data cerută de ISO 8601 este prin săptămână . Formatul începe cu anul [AAAA], apoi cu litera mare „W” urmată de numărul săptămânii [WW] de la 01 la 53; unii ani se încheie în săptămâna 52. Ziua săptămânii [D] poate fi indicată și cu o cifră de la 1 pentru luni până la 7 pentru duminică . Acest formular este utilizat pe scară largă în cadrul companiilor.
Săptămâna 01 a anului este definită ca (toate sunt echivalente):
- săptămâna care conține prima joi a anului,
- săptămâna care conține 4 ianuarie,
- prima săptămână care conține patru sau mai multe zile ale noului an,
- săptămâna care începe luni între 29 decembrie și 4 ianuarie,
- dacă 1 ianuarie este luni, marți , miercuri sau joi, atunci este în săptămâna 01. Dacă se întâmplă într-o vineri , sâmbătă sau duminică, atunci este în ultima săptămână (52 sau 53) a anului precedent.
Numărul săptămânii poate fi calculat prin numărarea joi: săptămâna 12 conține a douăsprezecea joi a anului.
Formule pentru foi de calcul
Următoarele sunt formule de calcul tabelar pentru a calcula anul ISO și săptămâna ISO a unei zile (testate pe Microsoft Excel 2007 italian și Apache OpenOffice Calc 3.4.0 italian). A1 este celula care conține data de luat în considerare:
- YEAR.ISO (A1) = YEAR (A1 - WEEKDAY (A1,2) + 4)
(Anul gregorian de joi din aceeași săptămână ca A1)
- WEEK.ISO (A1) = 1 + (A1 - WEEKDAY (A1,2) - DATE (YEAR (A1 - WEEKDAY (A1,2) + 4); 1; 4) + WEEKDAY (DATE (YEAR (A1 - WEEKDAY ( A1; 2) + 4); 1; 4); 2)) / 7
(distanța în săptămâni între prima joi a anului ISO și joi din aceeași săptămână ca A1).
Pentru a afișa săptămâna corect, trebuie să selectați General sau Număr ca categorie în format de celulă .
Data completă
AAAA-MM | sau | AAAAAA |
---|---|---|
AAAA-LL-ZZ | sau | AAAAMMDD |
Data completă este cea mai familiară formă pentru majoritatea oamenilor. După cum sa menționat mai sus [AAAA] indică anul în mod unic. [MM] indică luna în numere, de la 01 la 12. [DD] indică ziua lunii, de la 01 la 31. De exemplu, „5 aprilie 1981” poate fi scris ca 1981-04-05 în formă extinsă sau 19810405 în formă de bază.
Standardul vă permite, de asemenea, să utilizați mai puțină precizie. De exemplu, puteți scrie „1981-04” pentru a vă referi la luna „aprilie 1981”; sau pur și simplu „1981” pentru a indica anul.
Anul ISO începe luni de săptămâna 01 și se termină duminica înainte de începerea noului an ISO. Conține 52 sau 53 de săptămâni întregi. Numărul anului ISO este diferit de cel al anului gregorian cel târziu în primele vineri, sâmbătă și duminică ale noului an; și ultimele luni, marți și miercuri ale anului vechi. Joi, anul ISO este întotdeauna același cu anul gregorian. Exemple:
- 29.12.2008 este „2009-W01-1”,
- 03.01.2010 este „2009-W53-7”.
Date ordinale
AAAA-ZZ | sau | AAAAAA |
---|
Datele ordinale sunt o modalitate simplă de a reprezenta o anumită zi fără a indica numărul săptămânii sau lunii. Această reprezentare prezice anul [AAAA] și numărul zilei [DDD] de la 001 la 365 sau 366 în anii bisecți . De exemplu, „1981-095” înseamnă „1981-04-05” (5 aprilie 1981).
Acest sistem este referit frecvent, dar incorect, la ziua iuliană .
Evoluții viitoare
Standardul prevede că, printr-un acord între părțile comunicante, pot fi utilizate mai mult de patru cifre pentru a indica anul. Este folosit pentru a reprezenta ani înainte de 10001 î.Hr. sau după 10000 . Cu toate acestea, pot apărea ambiguități dacă se folosește forma de bază, fără separatori. De exemplu, „200406” poate însemna anul 200406 sau „iunie 2004”. ISO sugerează utilizarea unei forme explicite de comunicare pentru a evita astfel de confuzii, având în vedere numărul minim de cazuri care apar.
Orare
hh: mm: ss | sau | hhmmss |
---|---|---|
hh: mm | sau | hhmm |
hh |
ISO 8601 utilizează sistemul de 24 de ore, ca majoritatea lumii. Forma de bază este [hh] [mm] [ss], în timp ce forma extinsă este [hh]: [mm]: [ss]. [hh] indică timpul dintre 00 și 23, [mm] se referă la minutele de la 00 la 59 și [ss] secundele întotdeauna între 00 și 59. Există două excepții: miezul nopții poate fi indicat cu formularul 24:00 : 00, iar secundele pot crește până la 60 în cazul minutului de 61 de secunde .
Dacă nu este necesar, valorile mai puțin semnificative pot fi omise, adică utilizați formele [hh]: [mm] sau [hh].
De asemenea, puteți indica valori zecimale folosind virgula (utilizarea punctului este permisă, dar nu este recomandată), de exemplu 03:14:30 puteți scrie 03: 14.5 sau, în formă de bază, 0314.5.
Midnight este un caz special, același moment poate fi indicat în două moduri diferite; cuvintele „1981-04-05T24: 00” și „1981-04-06T00: 00” sunt echivalente. Notarea „00:00” este utilizată la începutul zilei, în timp ce „24:00” la sfârșitul zilei.
Diferența de fus orar
<timp> Z | ||
---|---|---|
<timp> ± hh: mm: ss | sau | <timp> ± hhmmss |
<timp> ± hh: mm | sau | <timp> ± hhmm |
<timp> ± hh |
Dacă nu există nicio indicație a fusului orar, se presupune că acesta este cel local. Acest lucru nu creează probleme dacă comunicarea are loc între două persoane din aceeași zonă, dar poate crea ambiguitate în tranzacțiile internaționale; pentru aceasta este indicat să indicați fusul orar cu notația standard.
UTC
Dacă ora este legată de o zonă aparținând fusului orar UTC , trebuie doar să adăugați un „Z” după cifre, fără spații. De exemplu, „14:45:15 UTC” poate fi scris ca „14: 45: 15Z” sau „144515Z”.
Alte domenii
Celelalte zone sunt exprimate prin indicarea diferenței față de UTC sub forma ± [hh]: [mm], ± [hh] [mm] sau ± [hh]. De exemplu, „ ora solară (iarna) italiană este denumită„ +01: 00 ”,„ +0100 ”sau pur și simplu„ +01 ”, în timp ce legea cu„ +02: 00 ”,„ +0200 ”sau„ + 02 ". Atunci când scrieți un orar, trebuie indicată doar diferența actuală față de UTC, deci variază pe tot parcursul anului.
Aceste ore indică toate aceeași oră: „18: 30Z”, „22: 30 + 04”, „1130-0700” și „15: 00-03: 30”.
Reprezentări combinate
<data> T <ora> |
---|
Pentru a reprezenta împreună data și ora, trebuie doar să introduceți un „T” între data și ora indicate în regulile dvs. De obicei se folosește forma [AAAA] - [MM] - [DD] T [hh]: [mm]: [ss] ± [hh]: [mm], cum ar fi "1981-04-05T14: 30: 30- 05:00 "(în formă de bază" 19810405T143030-0500 ").
Uneori data și ora sunt reprezentate nu împărțite de „T”, ci de un spațiu, pentru a permite o lectură umană mai ușoară; tehnic, totuși, nu este o reprezentare combinată, ci doar două reprezentări simple amplasate aproape una de alta.
Durate
PnnYnnMnnDTnnHnnMnnS |
---|
PnnYnnWnnDTnnHnnMnnS |
P <data> T <ora> |
Perioadele și duratele sunt reprezentate în formatul P [n] Y [n] M [n] DT [n] H [n] M [n] S (sau P [n] Y [n] W [n] DT [n ] H [n] M [n] S dacă se utilizează săptămâni), unde [n] este un număr adecvat pentru următorul element; majusculele trebuie raportate așa cum sunt. Dacă valoarea unui element este zero, aceasta poate fi omisă, dar inserarea acestuia poate facilita înțelegerea. Rețineți că „P1M” reprezintă o lună, în timp ce „PT1M” reprezintă un minut. De exemplu, „P3Y6M4DT12H30M0S” indică o perioadă de trei ani, șase luni, patru zile, douăsprezece ore, treizeci de minute și zero secunde. De asemenea, în acest caz se pot utiliza valori zecimale, de fapt „P0.5Y” indică jumătate de an. Alternativ, se poate utiliza forma P [AAAA] - [MM] - [ZZ] T [hh]: [mm]: [ss]; iar exemplul de mai sus devine „P0003-06-04T12: 30: 00”.
Interval de timp
<begin> / <end> |
---|
<begin> / <duration> |
<duration> / <end> |
<duration> |
Un interval de timp poate fi reprezentat în patru moduri:
- început și sfârșit: "2002-03-01T13: 00: 00Z / 2003-05-11T15: 30: 00Z",
- începere și durată: "2002-03-01T13: 00: 00Z / P1Y2M10DT2H30M",
- durata și sfârșitul: "P1Y2M10DT2H30M / 2003-05-11T15: 30: 00Z",
- numai durata: „P1Y2M10DT2H30M”.
Dintre aceste forme, primele trei necesită două părți ale căror valori sunt separate prin bară „/” (este permisă, de asemenea, cursa dublă „-”, deși utilizarea sa nu este recomandată). Dacă unele valori lipsesc în partea a doua, acestea sunt considerate la fel ca cele din prima parte.
Intervale repetate
Rnn / <interval> |
---|
R / <interval> |
Pentru a repeta un interval, introduceți „R [n] /” înainte de expresia intervalului, unde [n] reprezintă numărul de repetări. De exemplu, pentru a repeta intervalul "P1Y2M10DT2H30M" de cinci ori începând de la "2002-03-01T13: 00: 00Z", scrieți "R5 / 2002-03-01T13: 00: 00Z / P1Y2M10DT2H30M".
Utilizare
Pe Internet , ISO 8601 este utilizat de W3C pentru a defini un standard care limitează posibilitatea de eroare și reduce complexitatea software-ului . [3]
RFC 3339 definește un profil ISO 8601 care poate fi utilizat în suita de protocol Internet . Exclude în mod explicit utilizarea duratelor și a datelor înainte de Hristos. Utilizați notația [hh]: [mm]: [ss] -00: 00 pentru a indica fusul orar local dacă nu este cunoscut. Sunt descurajate formate mai complexe, cum ar fi cele care folosesc săptămâni sau date ordinale.
ISO 8601 este menționat în multe alte specificații tehnice, dar nu sunt întotdeauna permise toate variantele oferite de standard.
Variante
Variații la acest standard pot fi uneori găsite în utilizarea obișnuită.
De exemplu, utilizați zero pentru a indica duminica, în țările în care, după obicei, săptămâna începe cu această zi.
Sau introduceți o scrisoare de la „A” la „G” după data pentru a indica ziua săptămânii, de exemplu scrieți „2001-001A” care înseamnă „luni, 1 ianuarie 2001”. Această literă înlocuiește „T” în reprezentările combinate ale datei și orei.
O altă variantă, folosind săptămâni, este împărțirea lunii în patru sau cinci săptămâni, mai degrabă decât pe tot anul. De asemenea, acest formular, la fel ca cel oficial, poate fi urmat de o cifră care indică ziua săptămânii, de la 1 pentru luni până la 7 pentru duminică.
Unii împart anul în trimestre, fiecare format din trei luni întregi, care sunt indicate cu „Qq”, unde majuscula rămâne ca atare, litera mică este înlocuită cu o cifră de la 1 la 4. Această referință poate fi utilizată în oricare dintre formatele pentru datele văzute anterior.
Notă
- ^ Capacitatea de a scrie anul cu doar două cifre, prevăzută în versiunea 2000, a fost abolită în versiunea 2004.
- ^ Trebuie amintit că odată cu introducerea calendarului gregorian a trecut de la 4 octombrie 1582 la 15 octombrie 1582, trecând peste 10 zile.
- ^ (RO) Formate de dată și oră , pe w3.org, W3C. Accesat la 4 august 2011 .
Elemente conexe
- Vreme
- Cronologie
- Diferența de fus orar
- ora universală coordonată
- Calendar
- Calendarul iulian
- Ziua iuliană
- Data ordinală
Alte proiecte
-
Wikimedia Commons conține imagini sau alte fișiere pe ISO 8601
linkuri externe
- ( EN ) ISO 8601: 2004 , pe iso.org .
- ( EN ) ISO 8601: 2004 (E) de OMG (pdf, 294KB)
- ( EN ) Rezumatul ISO 8601 , pe iso.org . Adus la 29 octombrie 2006 (arhivat din original la 5 decembrie 2006) .
- ( EN ) ISO 8601: 2004 (E) de la ISO (zip-pdf, 228KB)
- W3C
- informație
- ( RO ) Note privind formatele de dată și oră , pe w3.org .
- ( EN ) și comentariu , pe w3.org .
- Recomandări
- ( EN ) Valoarea DateTime în schema XML , bazată pe ISO 8601
- informație
- ( EN ) Formate de date ISO 8601 , pe hermetic.ch .
- ( EN ) Rezumatul ISO 8601 de Markus Kuhn , pe cl.cam.ac.uk.
- ( EN ) Algoritmi pentru calcularea calendarului ISO 8601 , pe staff.science.uu.nl .
- ( EN ) ISO 8601 - Conversie și implementare în diferite limbi , pe probabilityof.com .
- ( EN ) Implementarea ISO 8601 în diferite țări , pe qsl.net .
- ( RO ) Conversia datelor [ link rupt ] , pe personal.ecu.edu .
- ( RO ) Implementare în JavaScript , pe delete.me.uk . Adus pe 29 octombrie 2006 (arhivat din original la 16 noiembrie 2006) .
- ( EN ) Grupul Yahoo pe ISO 8601 , pe groups.yahoo.com .
- ( EN ) Buton pentru site-uri web „compatibile ISO 8601” , pe esperanto.uklinux.net . Adus la 29 octombrie 2006 (arhivat din original la 1 octombrie 2006) .