ISO 8601 ir starptautisks standartsdatuma unlaika pierakstam, ko izdevusiStarptautiskā standartu organizācija (International Organization for Standardization,ISO). Oficiāli standarts ir nosaukts par "Data elements and interchange formats — Information interchange — Representation of dates and times" ("Datu elementi un apmaiņas standarti — informācijas apmaiņa - datumu un laika attēlojums"). GalvenāISO 8601 standarta īpašība ir datuma un laika pieraksts, kurā vērtības tiek pierakstītas secībā no svarīgākā uz mazsvarīgāko jeb no lielākā (gads) uz mazāko (sekunde).
Piemēra datums: |
2025-03-16 |
Piemērs ar atdalītu datumu un laikuUTC: |
2025-03-16 01.32Z |
Piemērs ar apvienotu datumu un laikuUTC: |
2025-03-16T01.32Z |
StandartaISO 8601 pirmā redakcija tika publicēta1988. gadā. Tā unificēja un aizstāja vairākus vecākusISO datuma un laika pieraksta standartus:ISO 2014,ISO 2015,ISO 2711,ISO 3307 unISO 4031.2000. gadā tā tika aizstāta ar otro redakciju, trešā redakcija,ISO 8601:2004, tika publicēta 2004-12-03, un pašreizējā, ceturtā,ISO 8601:2019 — 2019-02.[1]
ISO 2014 standartā tika ieviests datuma pieraksts [GGGG]-[MM]-[DD].ISO nedēļu numerācija pirmoreiz parādījāsISO 2015, un dienu identifikācija pēc kārtas datumiem tika ieviestaISO 2711.
Datuma un laika vērtības tiek organizētas secībā no svarīgākā uz mazāk svarīgāko: gads, mēnesis (vai nedēļa), diena, stunda, minūte, sekunde un sekundes daļa. Katra vērtība tiek pierakstīta ar fiksētu ciparu skaitu; ja paliek brīvās pozīcijas, tās aizpilda ar nullēm.
Pieraksts var tikt veikts vienā no diviem formātiem: pamatformātā ar minimālu atdalītāju skaitu vai paplašinātā formātā ar atdalītājiem, kas uzlabo lasāmību. Standarts pieļaujdefises atdalītāju starp datuma vērtībām (gadu, mēnesi, nedēļu un dienu) unkolu kā atdalītāju starp laika vērtībām (stundu, minūti un sekundi). Piemēram, 2009. gada 1. mēneša 6. dienu var pierakstīt kā "2009-01-06" paplašinātajā formātā vai kā "20090106" pamatformātā, kas neveido pārpratumus. Paplašinātie formāti tomēr ir ieteicamāki, jo daži pamatformāti var radīt pārpratumus.
Ar samazinātu precizitāti, jebkuru datuma un laika vērtību var atmest, bet secībā "no mazsvarīgākā uz vairāk svarīgāko". Piemēram, "2009-01" ir pareizsISO 8601 datums, kas rāda 2009. gada 1. mēnesi. Ar to nevarēs parādīt 2009. gada 1. dienu kādā no mēnešiem.
Visbeidzot, ja nepieciešama lielāka precizitāte, standarts ļauj pievienot papildu decimālo daļu mazākajai laika vērtībai pierakstā.
Standarts izmantoGregora kalendāru, ko plaši izmanto pasaulē, un kas ir kļuvis parde facto standarta kalendāru dažādās starptautiskajās jomās.
ISO 8601 par atskaites punktu ir fiksēts Gregora kalendāra datums 1875-05-20 kā datums, kad Parīzē tika noslēgtaMetriskā konvencija. Šis atskaites datums ļaujISO datumus konvertēt uz "Hronoloģiskajiemjuliāna dienas skaitļiem" (Chronological Julian Day Numbers,CJDN) aprēķiniem ar datumiem, kur 1875-05-20 atbilst precīzi CJDN 2406029.ISO datumi arī pirms Konvencijas ir savietojami līdz pat Gregora kalendāra ieviešanas datumam 1582-10-15.
ISO 8601 pierakstā minimālā prasība ir četru ciparugads [GGGG], lai novērstu2000. gada problēmu.
Lai attēlotu gadus pirms 0. un pēc 9999. gada, standarts ļauj paplašināt gada pierakstu uz [±GGGGG], bet pirms tam vienojoties datuma publicētājam un izmantotājam. Paplašinātajā gada pierakstā papildu ciparu pieliek pirms četru ciparu minimālā gada un obligāti jāpieliek + vai − zīme ar vienošanos, ka 0. gads ir pozitīvs.
GGGG-MM-DD | vai | GGGGMMDD |
---|
GGGG-MM | bet ne | GGGGMM |
---|
Kalendāro datumu pieraksta ar gadu,mēnesi undienu. [GGGG] ir četru ciparu gads, [MM] ir gada divu ciparu mēnesis (no 01 līdz 12), un [DD] rāda mēneša divu ciparu dienu (no 01 līdz 31). Piemēram, 1981. gada 5. aprīli var pierakstīt kā "1981-04-05" paplašinātajā formātā vai "19810405" pamatformātā.
Standarts ļauj datumu pierakstīt arī ar samazinātu precizitāti, atmetot dienu vai mēnesi. Piemēram, "1981-04" nozīmē "1981. gada aprīlis", bet "1981" ir vienkārši gads. Lai gan ir pieļaujami abi formāti — GGGGMMDD un GGGG-MM-DD, tomēr, ja diena [DD] ir izlaista, tad atļauts ir tikai formāts GGGG-MM. Aizliedzot datumu formātā GGGGMM, standarts novērš divdomību, ja kļūdaini tiek izmantots nogrieztais pieraksts GGMMDD (vēl joprojām bieži lietots).
GGGG-Wnn | vai | GGGGWnn |
---|
GGGG-Wnn-D | vai | GGGGWnnD |
---|
ISO 8601 standartā datumu var pierakstīt arī alternatīvā veidā — arnedēļas kārtas numuru gadā. Nedēļas datums sastāv no tā saucamā ISO gada [GGGG], nedēļas kārtas numura no diviem cipariem [nn], kuriem priekšā ir burts 'W' (angļu:week "nedēļa"). Pēc tam seko nedēļas diena [D], kas sastāv no viena cipara (no 1 līdz 7); nedēļa sākas nopirmdienas, beidzas arsvētdienu.
Nedēļas '01' noteikšanai var izmantot vairākas definīcijas:
Nedēļas kārtas numuru var noteikt, saskaitot ceturtdienas no gada sākuma.
ISO gads sākas ar nedēļas '01' pirmo dienu (pirmdienu) un beidzas svētdienā pirms jaunāISO gada (tādējādi novēršot pārklāšanos vai pārrāvumu). Gads sastāv no 52 vai 53 nedēļām.
Piemēri:
- 2008-12-29 tiek pierakstīts kā "2009-W01-1"
- 2010-01-03 tiek pierakstīts kā "2009-W53-7"
Trešā datuma pieraksta sistēma ir saucamie "kārtas datumi" (angļu:ordinal dates), kas ir ļoti vienkārša, jo komplicētās mēnešu vai nedēļu definīcijas aizstāj ar dienu skaitu no gada sākuma. Tas atvieglo, piemēram, datumu salīdzināšanu dažādos kalendāros. Standarts sastāv no gada [GGGG] un gada dienas [DDD] — no 001 līdz 365 (366garajā gadā). Piemēram, "1981-04-05" ir arī "1981-095".
Šo formātu daļēji izmanto vienkāršās datoraparatūras sistēmās, kurās nepieciešama datumu sistēma, bet pilna kalendāra aprēķināšanas programmatūra var būt nopietns traucēklis. Šīs sistēmas bieži, bet nekorekti, attiecina uzjuliāna dienu.
hh:mm:ss | vai | hhmmss |
---|
hh:mm | vai | hhmm |
---|
hh |
---|
ISO 8601 izmanto 24 stundu pulksteņa sistēmu. Pamatformāts ir [hh][mm][ss], un paplašinātais formāts ir [hh]:[mm]:[ss]. [hh] ir divu ciparustunda (no 00 līdz 24), kur 24 lieto tikai, lai apzīmētu pusnakti dienas beigās. [mm] apzīmēminūti no 00 līdz 59. [ss] irsekunde no 00 līdz 59 (vai 60 izņēmuma gadījumos, lai apzīmētu pievienoto lieko sekundi). Tādējādi laiku var pierakstīt "13:47:30" vai "134730".
ir pieļaujama elementu atmešana, lai samazinātu precizitāti. Var lietot formātus [hh]:[mm], [hh][mm] un [hh].
Decimālo daļu var pielietot jebkuram no trijiem laika elementiem. To norāda, izmantojotdecimālo atdalītāju (vai nukomatu, kuru iesakaISO 31, vaipunktu). Decimāldaļa attiecas tikai uz precīzāko laika komponentu, pārējos komponentus atmet. Piemēram, lai pierakstītu "14 stundas, 30 minūtes un pusminūte", nav jāiekļauj sekundes elements: to pieraksta kā "14:30,5" vai "1430,5".
Pusnakts ir īpašs gadījums, un to var pierakstīt gan kā "00:00", gan "24:00". "00:00" tiek attiecināts uz dienas sākumu, un to pielieto visbiežāk. Lai apzīmētu dienas beigas, izmanto "24:00". "2007-04-05T24:00" ir tas pats, kas "2007-04-06T00:00".
<laiks>Z |
---|
<laiks>±hh:mm | vai | <laiks>±hhmm |
---|
<laiks>±hh |
---|
Ja kopā ar laiku nav dota informācija parlaika joslu, tad jāuzskata, ka laiks ir pierakstīts lokālajā laika joslā. Lai gan to var droši lietot cilvēki noteiktā apgabalā, sazinoties starp dažādām laika joslām, var rasties pārpratumi, tādēļ parasti tiek norādīta laika josla, izmantojot standarta pierakstu.
Ja laiks ir pēcUTC laika joslas, pēc laika vērtības tiek pievienots burts 'Z' (noangļu:zero — "nulle", jo UTC ir 0. laika josla). Piemēram, "09:30 UTC" tiek pierakstīts kā "09:30Z" vai "0930Z"; "14:45:15 UTC" jābūt "14:45:15Z" vai "144515Z".
Joslas apzīmētāju citām laika joslām veido kā starpību no UTC, formātā ±[hh]:[mm], ±[hh][mm] vai ±[hh]. Tādējādi, ja ir jāpieraksta laiks, kas ir vienu stundu priekšā UTC (laiksBerlīnē ziemā), tad joslas apzīmētājam jābūt "+01:00", "+0100", vai vienkārši "+01". Jāņem vērā, ka joslas apzīmētājs ir tikai atšķirība no UTC, un tas neņem vērā informāciju parvasaras un ziemas laiku. Sekojoši pieraksti rāda vienu un to pašu laiku: "18:30Z", "22:30+04", "1130-0700" un "15:00-03:30".
Pārrēķiniem starp laika joslām jāizmanto šādas sakarības:
- "laiks joslā A" - "UTC atšķirība joslai A" = "laiks joslā B" - "UTC atšķirība joslai B" = laiks UTC
- "laiks joslā B" = "laiks joslā A" - "UTC atšķirība joslai A" + "UTC atšķirība joslai B".
Piemēram, kāds laiks būs Losandželosā brīdī, kad tiek atvērta Ņujorkas birža?
- laiks joslā PST = 09:30 - (-05:00) + (-08:00) = 06:30
Laiks Deli, kad tiek atvērta Ņujorkas birža:
- laiks Indijas joslā = 09:30 - (-05:00) + (+5:30) = 20:00
<datums>T<laiks> | <datums>T<laiks>Z |
---|
Kombinēto datuma un laika pierakstu (bez atstarpēm) veido formātā <datums>T<laiks>, kur laika atdalītāju [T] (time — "laiks") izmato, lai parādītu laika elementu sākumu. <datums> un <laiks> ir datuma un laika pieraksts, atbilstoši standartam. Vispārējā gadījumā kombinēto datumu var pierakstīt šādi: [YYYY]-[MM]-[DD]T[hh]:[mm] (paplašinātais formāts), piemēram "2007-04-05T14:30". Pierakstā "20071023T1200Z" lietots pamatformāts [YYYY][MM][DD]T[hh][mm]Z.
Lai cilvēkam būtu vieglāk lasīt, visbiežāk datuma un laika daļas tiek atdalītas ar atstarpi vai citu simbolu. Šajā gadījumā sistēmā tas aizņem divus atsevišķus laukus, atšķirībā no kombinēta pieraksta viena lauka.ISO 8601 standartā ir pieļaujami atsevišķi datuma un laika pieraksti. Piemēram, "2007-04-05 14:30".
PnnYnnMnnDTnnHnnMnnS |
---|
PnnYnnWnnDTnnHnnMnnS |
---|
P<datums>T<laiks> |
---|
Periodus var attēlot formātā P[n]Y[n]M[n]DT[n]H[n]M[n]S (vai P[n]Y[n]W[n]DT[n]H[n]M[n]S, izmantojot nedēļu formātu). Šajā pierakstā [n] jāaizstāj ar attiecīgo skaitli pirms elementa simbola. Vairākciparu elementiem priekšā nav obligāti jāliek nulles, bet ir ieteicamas, lai būtu skaidrāk uztverams periods. Elementu simboli var būt: 'P' — perioda formāta pazīme, 'Y' — gads, 'M' — mēnesis, 'W' — nedēļa, 'D' — diena, 'T' — laika sekcijas pazīme, 'H' — stunda, 'M' — minūte un 'S' — sekunde. Piemēram, "P3Y6M4DT12H30M0S" ir "periods 3 gadi, 6 mēneši, 4 dienas, 12 stundas, 30 minūtes un 0 sekundes". Elementus var atmest, ja to vērtība ir nulle. Tā kā pierakstā divās vietās tiek izmantots simbols 'M', tad ar "P1M" apzīmē vienu mēnesi, bet ar "PT1M" — vienu minūti. Mazākajai vērtībai var būt arī decimāldaļa. Piemēram, "P0,5Y" nozīmē "puse no gada".
Periodam var izmantot arī kombinēto paplašināto formātu: P[GGGG]-[MM]-[DD]T[hh]:[mm]:[ss]. iepriekšminēto piemēru šajā gadījumā var pierakstīt kā "P0003-06-04T12:30:00".
<sākums>/<beigas> |
---|
<sākums>/<ilgums> |
---|
<ilgums>/<beigas> |
---|
<ilgums> |
---|
Laika intervāli apzīmē noteiktu laika daudzumu. Tos var parādīt četros veidos:
- ar sākumu un beigām, piem., "2007-03-01T13:00:00Z/2008-05-11T15:30:00Z"
- ar sākumu un ilgumu, piem., "2007-03-01T13:00:00Z/P1Y2M10DT2H30M"
- ar ilgumu un beigām, piem., "P1Y2M10DT2H30M/2008-05-11T15:30:00Z"
- tikai ilgumu "P1Y2M10DT2H30M"
Šajos formātos pirmajiem trijiem nepieciešamas divas atsevišķas sekcijas, kas parasti atdalītas ar slīpsvītru '/'. Dažos pielietojumos slīpsvītras vietā izmanto dubultdefisi '--'.
Formātā <sākums>/<beigas>, ja kāds no beigu sekcijas elementiem ir izlaists, to pieņem tādu pašu, kā sākuma sekcijā, ar to pašu laika joslu. Šī īpašība ļauj koncentrēti pierakstīt laika intervālus. Piemēram, lai pierakstītu divu stundu intervālu ar sākuma un beigu laiku, jāraksta "2007-12-14T13:30/15:30"; starp datumiem — "2008-02-15/03-14".
Ja intervālam nepieciešama lielāka precizitāte, tad pierakstā jāpievieno vairāk elementu. Piemēram, ja ir jāparāda periods aptuveni trīs dienas, tad var rakstīt "2007-11-13/15", bet ja nepieciešams precīzi parādīt sākuma un beigu laiku, tad jāpaplašina līdz "2007-11-13T00:00/15T24:00".
Rnn/<intervāls> |
---|
R/<intervāls> |
---|
Atkārtojošies intervāli tiek veidoti, intervāla izteiksmes sākumā pievienojot "R[n]/", kur 'R' ir atkārtošanās pazīme (repeat — atkārtot), un [n] ir atkārtojumu skaits. Izlaists [n] nozīmē bezgalīgu atkārtošanos. Piemēram, lai pierakstītu, "P1Y2M10DT2H30M" piecas reizes, sākot ar "2008-03-01T13:00:00Z", jālieto "R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M".
Standarta redakcijaISO 8601:2000 ļāva nogriešanu (ja ir vienošanās), kur vadošos datuma vai laika komponentus varēja atmest. Tas pieļāva izmantot divu ciparu gadus: YY-MM-DD un YYMMDD. Šis pretrunīgais formāts tika atceltsISO 8601:2004.
- RFC 3339, Datums un laiks internetā, 2002-07