+ Prikazivanje datuma i vremena prema ISO 8601 Datum Datum i vrijeme po UTC-u Tjedan Tjedan i dan u tjednu Datum bez godine Dan u godini
ISO 8601 je međunarodni standard koji sadržava preporuke za brojevne formate datuma i vremena. Međunarodna organizacija za standardizaciju (ISO) izdala je prvu inačicu standarda 1988. godine, pod naslovom Data elements and interchange formats – Information interchange – Representation of dates and times (Elementi podataka i formati razmjene - Razmjena informacija - Predstavljanje datumâ i vremenâ). Cilj standarda je osiguranje jednoznačne i pouzdane metode u predstavljanju oblika datuma i vremena, kako bi se izbjeglo pogrešno predstavljanje brojevnih oblika datuma i vremena koji se javljaju u komunikaciji među državama koje imaju različito definirane konvencije predstavljanja.
ISO 8601 se primjenjuje za predstavljanje i format datuma u gregorijanskom kalendaru, za vremena u 24-satnom sustavu, vremenskih intervala i njihovo kombiniranje. Standard elementima datuma i vremena ne dodaje posebno značenje, već će značenje ovisiti o kontekstu. Također, elementi ne mogu sadržavati riječi koje nemaju posebno brojevno značenje definirano standardom (na primjer hrvatski nazivi mjeseca) niti elemente koji nisu tekstualni (na primjer slike ili zvuci).
Elementi su aranžirani tako da je slijeva najveći element (godina), a zatim nadesno sljedeći manji elementi. U predstavljanju se mogu koristiti samo kombinacije arapskih brojeva i posebnih znakova koji su definirani standardom (kao što su npr. "-", ":", "T", "W", "Z"). Dodavanje riječi kao što su January ili Thursday nije dozvoljeno u razmjeni podataka.
Povijest
Prvo izdanje standarda ISO 8601 objavljeno je 1988. godine kao ISO 8601:1988. Objedinilo je i zamijenilo više dotadašnjih ISO standarda koji su regulirali zapisivanje datuma i vremena: ISO 2014, ISO 2015, ISO 2711, ISO 3307 i ISO 4031. Za prvim je slijedilo drugo izdanje ISO 8601:2000, treće ISO 8601:2004 i četvrto izdano u veljači 2019. godine u dva dijela, ISO 8601-1:2019 (osnovni) i ISO 8601-2:2019 (proširenje). Standard izrađuje i objavljuje ISO Tehnički komitet ISO/TC 154 koji je nadležan za procese, elemente podataka i dokumente u trgovini, industriji i administraciji.
ISO 2014 je bio prvi standard koji je uveo predstavljanje datuma i vremena samo brojevima i nizanje po težini slijeva udesno. Brojeve tjedna uveo je standard ISO 2015, a standard ISO 2711 je definirao identifikaciju dana kao broj dana u godini.
Opće značajke Vrijednosti datuma i vremena poredani su od najvećih do najmanjih vremenskih jedinica: godina, mjesec (ili tjedan), dan, sat, minuta, sekunda te dijelovi sekunde. Time leksikografski poredak odgovara kronološkom poretku, osim kod zapisa negativnih godina, te omogućava prirodno sortiranje. Svaka vrijednost ima točno utvrđen broj znamenaka te se brojevi po potrebi dopunjavaju vodećim nulama. Predstavljanje može biti u osnovnom formatu kad se separatori svode na minimum, ili u proširenom formatu sa separatorima koji je čitljiviji za ljude. Standard navodi da u običnom tekstu treba izbjegavati osnovni format. Separator između elemenata datuma je spojnica, a između elemenata vremena je dvotočje. Na primjer, 26. ožujka 2019. godine može se napisati u osnovnom formatu kao "20190326" ili u proširenom kao "2019-03-26". Za kraće predstavljanje mogu se ukloniti bilo koje vrijednosti, ali polazeći od najmanjih vrijednosti zdesna. Na primjer, "2004-05" je ispravan zapis po ISO 8601 i označava svibanj (peti mjesec) 2004. godine i nikad se neće pogrešno protumačiti kao peti dan u (nepoznatom) mjesecu ili kao razdoblje između 2004. i 2005. godine. Po potrebi za određenu primjenu, standard je predvidio decimale za najmanju vremensku jedinicu. (Ovdje se ne radi o dijelovima sekunde, već najmanjoj zapisanoj jedinici, na primjer, radoblje od pola godine "P0,5Y").
Datumi
ISO 8601 koristi gregorijanski kalendar, koji je međunarodni standard za civilnu upotrebu.
Standard fiksira datum kalendara na 20. svibnja 1785. godine, datum na koji je u Parizu potpisana metarska konvencija. Datumi prije konvencije kompatibilni su s kalendarom unatrag do službenog uvođenja gregorijanskog kalendara u upotrebu 15. listopada 1582. godine, a za datume prije uvođenja može se koristiti proleptički gregorijanski kalendar, uz dogovor korespondenata.
Godina
GGGG ±GGGGG
Da bi se izbjegao problem 2000. godine, standard propisuje minimum od četiri znamenke [GGGG] za predstavljanje godine. Na taj se način predstavljaju godine od 0000. do 9999., gdje 0000. godina predstavlja 1. godinu prije Krista a ostale su poslije Krista. Međutim, godine do 1583. nisu automatski dopuštene standardom. Godine u opsegu od do mogu se koristiti samo uz pristanak sudionika u razmjeni informacija.
Za predstavljanje godina prije 0000. i nakon 9999. standard dopušta proširenje notacije, ali uz prethodni dogovor sudionika. Za proširenu notaciju [±GGGGG] sudionici dogovaraju dodatni broj znamenaka godine, a oznaci mora prethoditi znak "+" ili "-". Po konvenciji, 1. godina pr. Kr. označena je kao +0000, 2. pr. Kr. je -0001 itd.
Kalendarski datum
GGGG-MM-DD ili GGGGMMDD GGGG-MM (ali ne GGGGMM) --MM-DD ili --MMDD
Predstavljanje kalendarskih datuma prikazano je u desnom okviru. [GGGG] označava četveroznamenkastu godinu, od 0000 do 9999. [MM] označava dvoznamenkasti mjesec u godini, od 01 do 12. [DD] označava dvoznamenkasti dan tog mjeseca, od 01 do 31. Na primjer, "5. travnja 1981." može se predstaviti ili kao "1981-04-05" u proširenom, ili kao "19810405" u osnovnom formatu.
Standard dopušta pisanje datuma sa smanjenom točnošću. Na primjer, može se napisati "1981-04" u značenju "travanj 1981. godine". Ako se dan u mjesecu izostavlja, dopušten je samo oblik GGGG-MM. Nije dopušteno predstavljanje u obliku GGGGMM, da bi se izbjeglo tumačenje datuma napisanog kao GGMMDD.
Broj tjedna
GGGG-Wtt ili GGGGWtt GGGG-Wtt-D ili GGGGWttD
U desnom okviru predstavljeno je prikazivanje broja tjedna i dana u tjednu. U ovom slučaju [GGGG] predstavlja godinu u kojoj se tjedan nalazi (ISO week-numbering year, ili neformalno ISO year - ISO godina), koja se može razlikovati od stvarne godine u gregorijanskom kalendaru (objašnjeno u nastavku). [Wtt] predstavlja broj tjedna kome uvijek prethodi slovo "W", od W01 do W52. [D] je redni broj dana u tjednu, od 1 za ponedjeljak do 7 za nedjelju.
Za tjedan 01 postoji nekoliko međusobno ekvivalentnih i kompatibilnih opisa: tjedan u kojem je prvi četvrtak u godini (službena ISO definicija) tjedan u kojem je 4. siječnja tjedan u kome je većina dana (četiri ili više) na početku godine tjedan koji počinje ponedjeljkom u razdoblju između 29. prosinca i 4. siječnja.
To znači, ako je 1. siječnja u ponedjeljak, utorak, srijedu ili četvrtak, on je u tjednu 01. Ako je 1. siječnja u petak, subotu ili nedjelju, on je u 52. ili 53. tjednu prethodne godine (ne postoji tjedan 00). Datum 28. prosinca uvijek je u posljednjem tjednu godine.
ISO godina može imati 52 ili 53 puna tjedna, odnosno 364 ili 371 dan, za razliku od gregorijanskog kalendara koji ima 365 ili 366 dana. Tjedan na kraju kalendarske godine ne prekida se, već nastavlja u novoj kalendaraskoj godini. Prema gornjim opisima određuje se kojoj godini pripada tjedan, odnosno pripada godini u kojoj je većina dana tjedna. Na primjer, 1. siječnja 2016. pripadao je 53. tjednu 2015. jer je prvi četvrtak bio 7. siječnja 2016. i u tom slučaju bi predstavljanje bilo 2015-W53; isto tako, 31. prosinca 2014. bio je u prvom tjednu 2015. godine te bi se pisalo 2015-W01.
Dan u godini
GGGG-DDD ili GGGGDDD
Redni broj dana u godini predstavljen je četveroznamenkastom oznakom godine [GGGG] i troznamenkastom oznakom dana [DDD]. Raspon broja dana je od 001 do 365 (ili 366 za prijestupnu godinu). Za jedno- i dvoznamenkaste brojeve dana pišu se vodeće nule. Na primjer, 1981-04-05 može se napisati kao 1981-095.
Vrijeme
hh:mm:ss,sss ili hhmmss,sss hh:mm:ss ili hhmmss hh:mm ili hhmm hh
ISO 8601 koristi 24-satni sustav. Osnovni format je [hh][mm][ss] a prošireni [hh]:[mm]:[ss]. [hh] označava sate s vodećom nulom, od 00 do 24 (gdje se 24 koristi samo kao oznaka ponoći na kraju kalendarskog dana). [mm] su minute u satu s vodećom nulom, od 00 do 59. [ss] označava sekunde s vodećom nulom, od 00 do 60 (60 se koristi samo da označi dodanu prijestupnu sekundu pri korekciji vremena na kraju godine, npr. 31. prosinca 2016. nakon 23:59:59 dodana je sekunda 23:59:60).
Sekunde ili minute i sekunde mogu se izostaviti iz osnovnog ili proširenog formata, čime se smanjuje točnost, ali povećava čitljivost: [hh]:[mm], [hh][mm] ili [hh].
Ponoć je poseban slučaj koji se može predstaviti kao "00:00" ili "24:00". Oblik "00:00" se koristi na početku, a "24:00" na kraju kalendarskog dana. Tako na primjer oblici 2007-04-05T24:00 i 2007-04-06T00:00 predstavljaju isti trenutak.
Na bilo koji element vremena može se dodati decimala, ali samo ako je posljednji u nizu. Iako decimalna oznaka može biti točka ili zarez, standard ISO 8601:2004 preporučuje zarez kao separator između vremena i decimale. Na primjer, "14 sati i 30 i pô minute" može se zapisati kao "14:30,5", "1430,5", "14:30.5" ili "1430.5". Broj znamenaka decimale nije ograničen, ali se sudionici trebaju o tome dogovoriti. Na primjer, kod Microsoftovog SQL servera preciznost je tri decimale, tj. hh:mm:ss[.mmm].
Vremenske zone
<vrijeme>Z <vrijeme>±hh:mm <vrijeme>±hhmm <vrijeme>±hh
Vremenske zone u ISO 8601 predstavljaju se kao lokalno vrijeme (ne navodeći lokaciju), kao UTC ili kao razlika od UTC-a.
Ako nije navedena informacija o odnosu prema UTC-u, podrazumijeva se lokalno vrijeme. Ta pretpostavka može biti sigurna pri komunikaciji u istoj vremenskoj zoni, ali najčešće nije, te je bolje navesti oznaku vremenske zone.
Koordinirano svjetsko vrijeme (UTC)
Ako je vrijeme po UTC-u, neposredno uz vrijeme bez razmaka se navodi oznaka "Z". "Z" označava da nema razlike u odnosu na UTC. Na primjer, vrijeme "09:30 UTC" može se zapisati kao "09:30Z" ili "0930Z", a "14:45:15 UTC" kao "14:45:15Z" ili "144515Z".
Slovo "Z" iz ISO 8601 odgovara vremenskoj zoni "Z", početnoj ili nultoj zoni po takozvanim "nautičkim" vremenskim zonama baziranim na GMT-u, od koje su zone označene slovima A-M (osim J) na istok (+1h do +12h) i N-Y (-1h do -12h) na zapad (zone M i Y imaju isto vrijeme s razlikom od 24h).
Razlike u odnosu na UTC
Razlika u odnosu na UTC dodaje se, kao i "Z" u gornjem slučaju, neposredno uz vrijeme u obliku ±[hh]:[mm], ±[hh][mm] ili ±[hh]. Tako da će vrijeme koje je jedan sat ispred UTC-a, kao što je u Hrvatskoj u zimskom računanju vremena (UTC+1, zona A), imati oznaku zone "+01:00", "+0100" ili "+01". Vrijeme koje je iza UTC-a imat će negativnu oznaku, na primjer Portugal kasni jedan sat za UTC-om te će imati oznaku vremenske zone "-01:00", "-0100" ili "-01". Za predstavljanje negativnih vrijednosti ISO 8601 propisuje korištenje spojnice ili znaka minus.
Ovi zapisi predstavljaju isto vrijeme: "18:30Z", "22:30+04", "1130−0700", "15:00−03:30". Nautičke oznake zona (spomenute gore) ne koriste se, osim oznake "Z". Da bi se dobilo UTC vrijeme, od predstavljenog vremena treba oduzeti razliku, na primjer, iz "15:00−03:30" operacijom 15:00 − (−03:30) dobiva se 18:30 UTC.
Iako razlika nula ima posebnu oznaku "Z", ona se također može iskazati brojkama kao "+00:00", "+0000" ili "+00", ali nije dopušten negativan broj ("−00:00", "−0000" ili "−00").
Kombinirano predstavljanje datuma i vremena
<datum>T<vrijeme>
Neka točka u vremenu može se predstaviti spajanjem izraza za datum i izraza za vrijeme između kojih je separator slovo "T". Na primjer, "2007-04-05T14:30".
Ako treba staviti i oznaku vremenske zone, ona se stavlja na kraj niza. Na primjer, "2007-04-05T14:30Z" ili "2007-04-05T12:30-02:00".