ISO 8601 ir starptautisks standarts, kura mērķis ir datumus, laikus, intervālus un atkārtojumus aprakstīt vienā, datoriem saprotamā un viennozīmīgā formātā. Standarta jaunākās versijas ir publicētas kā ISO 8601-1 un ISO 8601-2 (2019), tomēr pamatprincipi — īpaši formāti datumam un laikam — ir plaši pieņemti un lietoti IT vidē.
Galvenie formāti
Datums (pamatformāts): gads, mēnesis, diena, sakārtoti pēc lieluma — GADS-MĒNESIS-DIENA. Piemērs: 2020-05-23.
Laiks (pamatformāts): stundas, minūtes, sekundes — HH:MM:SS. Piemērs: 19:29:00 vai vienkārši 19:29 ja sekundes nav nepieciešamas. Sekundes var ietvert arī daļskaitļus (piem., 19:29:30.5).
Datuma un laika savienojums izmanto burtu T kā starpnieku: 2020-05-23T19:29:00. Tāpat laika pārzīmēšanai var norādīt laika joslas atšķirību: 2020-05-23T19:29:00Z (UTC) vai 2020-05-23T21:29:00+02:00 (UTC+2).
Papildu formāti
- Pamata (plaši saprotams) pret bāzēto (bez atdalītājiem): var rakstīt arī bez defisiem un divpunktiem, piemēram 20200523 vai 20200523T192900. Tomēr izlasāmībai biežāk izmanto izplestās formas ar atdalītājiem.
- Nedēļu datumi: ISO var attēlot arī pēc nedēļām: YYYY-Www-D, piemēram, 2020-W21-6 (septiņās dienās — šeit "6" ir sestdiena).
- Ordinals (dienas pēc gada): YYYY-DDD, kur DDD ir dienas numurs gada ietvaros, piemēram, 2020-144 (144. diena gada).
- Intervāli un ilgumi: ISO 8601 atbalsta ilgumu formātu PnYnMnDTnHnMnS (piem., P1Y2M10DT2H30M) un intervālus, piemēram 2007-03-01/2008-05-11 vai atkārtojumus ar R (piem., R3/2012-08-01/P1M).
Praktiskas īpašības un prasības
- Vadošie nulles ir obligātas: mēnesim, dienai, stundām, minūtēm un sekundēm jābūt divciparu, piemēram, 2020-01-05, nevis 2020-1-5.
- Alfabētiskā (leikskopia) kārtošana = hronoloģiskā kārtošana: ja tekstā vai failos datumi ir formatēti kā YYYY-MM-DD, tad tos sakārtojot alfabētiskā secībā, tie automātiski sakārtosies arī hronoloģiski. Tas ir īpaši ērti failu nosaukumos un datubāzēs — piemēram, alfabētiskā secībā sakārtota datu rinda būs laika secībā.
- Laika zonas un UTC: laika norādei ieteicams un bieži nepieciešams norādīt laika joslu (Z vai ±hh:mm). Bez laika joslas nav droši salīdzināt laikus no dažādām vietām.
- Ilgaztības un atkārtojumi ļauj precīzi modelēt notikumu atkārtošanos un laika diapazonus, kas svarīgi plānošanas sistēmām un kalendāriem.
- Leepsekundes: ISO paredz iespēju reģistrēt arī 23:59:60, lai atspoguļotu leap second situācijas, taču prasības un reālā izmantošana atkarīga no sistēmas un laikastandarta (UTC).
Dažas praktiskas piezīmes
- ISO 8601 formāts ir plaši izplatīts IT jomā (API, žurnāli, datubāzes, faili), jo nodrošina skaidru, viennozīmīgu un kārtojamu laika attēlojumu.
- Ikdienas rakstībā daudzās valstīs joprojām pierasts cits datuma formāts (piem., DD.MM.YYYY vai MM/DD/YYYY), tāpēc publiskos dokumentos bieži redz kombināciju vai papildus paskaidrojumu.
- Jāuzmanās ar ISO nedēļas gadu (week-year): pirmā kalendārā nedēļa var piederēt iepriekšējam vai nākamajam gadam, tātad datumi un nedēļas marķējumi var nesakrist ar kalendāra gada numerāciju.
ISO 8601 nodrošina skaidru un konsekventu veidu datumiem un laikiem — tas ir īpaši noderīgi tehniskajās sistēmās. Cilvēkiem šis formāts var būt mazāk ierasts ikdienā, taču arvien biežāk tas tiek izmantots oficiālos dokumentos, tehniskajos standartos un datu apmaiņā starp sistēmām.