ISO 8601

Dette innlegget handler ikke om maskinering eller metallarbeid, men det handler om standarder, og jeg elsker standarder.

Men standarder er akkurat like nyttige som bruken av dem gjør dem. Hvis ingen bruker dem, så er det ikke noe poeng å ha dem. Så jeg ønsker å spre det gode ord, og informere om noe som gjør livet enklere og bedre.

0_JfsSJQk5j98gL3g7.jpg

Har du noen gang blitt forvirret av det amerikanske datoformatet? Har du sett en amerikaner skrive 5/7/1970 og trodd at han mente den femte juli?
Vel, han mente den syvende mai, fordi de skriver måneden først. De påstår at det gir mer mening å skrive måneden først siden det “organiserer“ tankegangen bedre, og man kan jo til en viss grad forstå det siden kalendere stort sett er oppdelt i månedene. Men ville det da ikke gitt mer mening å begynt med året?
Men de mener at det er overflødig, siden alle vet hvilket år det er snakk om, det er så lang tid mellom hver gang året skifter at det ikke er nødvendig å begynne med det. Det ville tatt for lang tid i dagligtale. Og det er jeg forsåvidt enig i, men hvordan man sier datoer i dagligtale behøver ikke ha en innvirkning på hvordan de skrives…
Det henger selvsagt igjen (som alt annet i statene) fra gammelt av da det var vanlig å skrive datoen ut slik; “May 7th” Så da den digitale alderen kom ble det bare akseptert at man skriver datoen først, i tallform. Men hva mer kan man forvente av verdens rikeste U-land?

Så du sitter kanskje å hoverer for deg selv og tenker at du er bedre siden du skriver det i mer logisk, størrelsesordnet rekkefølge, med dag/måned/år?
Vel, slapp helt av. Du skriver det også feil.

ISO 8601

I 1988 fant ISO ut at de hadde fått nok av denne typen misforståelser, og satte seg ned og banket i bordet med ISO 8601.
ISO 8601 er en dato-tid standard som definerer den absolutte korrekte måten å skrive dato og tid på:

ISO8601_extended_format_zulu.png

Dato og tid er ordnet etter største til minste tidsintervall, fra venstre til høyre.

I ISO 8601 skrives året først, deretter måneden og så dagen. T brukes for å skille dato og tid, og tiden skrives med time, minutt, sekund.

220px-Longitude_blue.svg.png

Til slutt må man definere tidssonen, i UTC (Coordinated Universal Time) defineres dette med bokstaven Z, som står for “Zero” eller (uoffisielt) “Zulu Time”, etter den militære tidsstandarden. Dette er det samme som GMT og går gjennom null-meridianen.


Dersom det er behov for å definere en annen tidssone gjøres dette med et pluss (+) eller minus-tegn (-) og deretter timer fra UTC.


For oss i Norge blir det seende slik ut:

ISO8601_extended.png

Det skal ikke forekomme mellomrom i formatet, og skilletegn mellom dato skal kun være bindestrek (-), og skilletegn mellom tid skal kun være kolon (:).

Formater

Standarden kommer i to varianter; Basic Format og Extended Format. Over ser vi extended format.

Basic format (under) fjerner alle skilletegn.+/- brukes fortsatt for å definere tidssone.

Forskjellen mellom disse er kun bruken av skilletegn og eksisterer for å gjøre det enklere for datamaskiner og mennesker å lese det, respektivt. I vanlig tekst som ikke er ment for digital avlesning skal det brukes extended format.

ISO8601_basic.png

Disse må ikke blandes, skriv enten alt i basic eller extended.

Tidssoner

Tidssonen skrives som ±HH:MM i extended og ±HHMM i basic, eller ±HH. Sistnevnte kan brukes i begge etter ønske. Standarden bruker 24-timers klokken.

Tidssonen er allerede tilført tiden, (som er oppgitt i lokal tid), så 18:00 er det samme som 15:00-03:00 (15:00 - (-03:00) = 18:00).

Millisekunder

Dersom det trengs enda finere tidsdefinering, som med millisekunder, kan dette legges til etter sekundene med et komma (,); 23:59:59,999.

Flere desimaler kan legges på ved behov.

Forenklinger og sløyfing

Dato og tid kan selvsagt skrives alene så lenge standarden følges. Dersom det ønskes å skrive datoen uten året, kan det sløyfes, men må erstattes av en bindestrek slik: --03-22

Datoer og tid kan også sløyfes fra minst til størst; 2020-03 er gyldig, og beskriver en tid innen mars i 2020.

0 foran et datotall eller tid kan ikke sløyfes.

År og uker

Standarden er basert på den Gregorianske kalender.

År 0 eksisterer ikke i standarden, 0000 i ISO 8601 er år 1 f.K. og 0001 er år 1 e.K. -0001 er år 2 f.K. Dette er for å gjøre det slik at et århundre starter på 1 og går fra 0001 til 0100.

Dersom du er en av de som bruke uketall kan det skrives etter en W etter året og et uketall (ww) fra 01-53. YYYY-Www eller YYYYWww. Dersom du ønsker å spesifisere en dag innen en uke kan det gjøres med D og et tall (d) fra 1-7; YYYY-WwwDd eller YYYYWwwDd. Dag 1 er alltid mandag.

Tidsperioder og varigheter

Dersom det ønskes å beskrive en mengde tid, og ikke et spesifikt tidspunkt, kan dette gjøres med bokstaven P. Formatet er som følger:

PnYnMnDTnHnMnS

De store bokstavene i dette formatet skal ikke byttes ut, tallet som representerer tiden skal erstatte “n”.
For eksempel vil en tidsperiode på 3 dager og 12 timer og 30 minutter kunne skrives slik: P0Y0M3DT12H30M0S
Leses slik: Periode på 0 år, 0 måneder, 3 dager, 12 timer og 30 minutter.
Verdier som er 0 kan sløyfes, men P kan ikke sløyfes, slik at det blir: P3DT12H30M

For å forhindre forvirring her er P1M én måned, ikke ett minutt. Ett minutt skrives slik: PT1M.

For en enda mer utfyllende forklaring av standarden så anbefaler jeg å lese den engelske Wikipedia-siden om det her.

Hvorfor bruke ISO 8601?

Å forveksle og mistolke dato og tid er ikke bare frustrerende på et personlig nivå, men kan være kostbart på et bedriftsnivå. Alle avtaler, kontrakter, bookinger o.l. har potensiale til å bli feiltolket.

Standarden er entydig og kan ikke forveksles eller feiltolkes.

Den er lett å lese, og egner seg ypperlig til bruk i dagens digitale verden, hvor å skrive år først o.s.v. gjør at alle filer og mappestrukturer på en datamaskin organiserer seg i kronologisk rekkefølge automatisk.

Standarden er allerede adoptert av nesten alle land i verden, men brukes ikke mye i det daglige. Og det er egentlig ingen god grunn til det. Jeg har hørt argumenter som at det er tungvindt å skrive, men unødvendige tidsgrupper kan sløyfes fra begge ender, den eneste forskjellen er at du må bruke bindestrek og lære betydningen av noen bokstaver. For ikke å snakke om følelsen av å være et bedre menneske. Et teknisk korrekt menneske.

Av én eller annen grunn er det ikke så utbredt å bruke det enda. Selv ikke Windows har en innebygget mulighet for å representere dato og tid i ISO 8601.
Så jeg prøver å gjøre min del for å spre adopsjonen av den korrekte måten å skrive tid og dato på. Jeg håper du vil hjelpe meg. Takk.

ISO 8601. Lær det. Bruk det.