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.