Le in­di­ca­zio­ni di date e orari svolgono un ruolo fon­da­men­ta­le quando bisogna trovare e con­clu­de­re accordi col­let­ti­vi. Nel­l'e­po­ca della glo­ba­liz­za­zio­ne digitale, però, è sempre più difficile indicare data e orario in maniera univoca per tutti. I diversi fusi orari nel mondo e le dif­fe­ren­ti abitudini culturali per il formato rendono pro­ble­ma­ti­ca l'in­di­ca­zio­ne precisa e af­fi­da­bi­le di data e orari al di là dei vari confini nazionali. L'ISO 8601 risolve proprio questo problema. Con l'accordo su questo standard in­ter­na­zio­na­le, tutti i soggetti coinvolti possono prendere ap­pun­ta­men­ti ine­qui­vo­ca­bi­li in tutto il mondo.

De­fi­ni­zio­ne: ISO 8601

Lo standard in­ter­na­zio­na­le ISO 8601 fornisce in­di­ca­zio­ni per i formati numerici di date e orari.

Grazie al­l'au­si­lio di diversi strumenti e script è possibile con­ver­ti­re i formati di date presenti in nell’ISO de­si­de­ra­to. In que­st'ar­ti­co­lo sco­pri­re­te tutto quello che c'è da sapere a proposito di questo standard per l'in­di­ca­zio­ne di date e orari.

Registra il tuo dominio
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Principi fon­da­men­ta­li della norma ISO 8601

La norma ISO 8601 definisce un formato ri­co­no­sciu­to a livello in­ter­na­zio­na­le per l'in­di­ca­zio­ne di date e orari. La suc­ces­sio­ne designata è quella di ore-minuti-secondi. Per le in­di­ca­zio­ni di parametri maggiori si applica la formula anno-mese-giorno. Il formato di questa rap­pre­sen­ta­zio­ne permette di scrivere le cifre im­me­dia­ta­men­te in suc­ces­sio­ne. Per maggiore chiarezza possono essere anche suddivise da se­pa­ra­to­ri. Nel formato base dell'ISO 8601 la data "7 settembre 2019" si scrive nella maniera seguente: "20190907", oppure si esprime nel formato con i se­pa­ra­to­ri: "2019-09-07". Gli orari sono suddivisi in ore, minuti e secondi. La rap­pre­sen­ta­zio­ne conforme all'ISO 8601 è dunque 12:07:22. Con questa rap­pre­sen­ta­zio­ne di formati di data ISO (ISO date formats) si annullano, almeno per via elet­tro­ni­ca, i diversi modi di scrivere la data specifici di ogni paese. In questo modo le in­di­ca­zio­ni sono sem­pli­fi­ca­te, non senza qualche piccolo attrito.

La norma ISO 8601 è co­no­sciu­ta anche con il nome EN 28601 (de­no­mi­na­zio­ne delle norme europee). È uti­liz­za­ta non soltanto per indicare momenti precisi, ma anche in­ter­val­li di tempo. In questi casi la data o l'ora di inizio viene indicata con la lettera "P" e separata dal­l'in­ter­val­lo di tempo suc­ces­si­vo. Un in­ter­val­lo di tempo che comincia il 6 settembre 2019 alle ore 20:00, ha una durata di 5 giorni e 3 ore, secondo l'accordo ISO si indica come segue: 2019-09-06T20P1M5T3H.

Tutte le in­di­ca­zio­ni di orari, date o in­ter­val­li di tempo conformi alla norma ISO vengono indicati con una suc­ces­sio­ne precisa: co­min­cia­no con l'unità più grande a cui segue sempre l'unità inferiore. Questo tipo di scrittura è noto anche come "scrittura de­cre­scen­te". Cor­ri­spon­de al valore ma­te­ma­ti­co naturale dei numeri. Le unità maggiori vengono scritte sempre prima di quelle inferiori. È un tipo di scrittura che si rileva van­tag­gio­sa perché l'ordine les­si­co­gra­fi­co e cro­no­lo­gi­co di date e orari porta allo stesso risultato.

Rap­pre­sen­ta­zio­ne tabellare delle date secondo l'ISO-8601 (ISO date)

Rap­pre­sen­ta­zio­ne conforme all'ISO 8601 Valori
Anno (Y) YYYY, di quattro cifre, ab­bre­via­to in due
Mese (M) MM, da 01 a 12
Settimana (W) WW, da 01 a 53
Giorno (D) D, giorno della settimana, da 1 a 7
Ora (h) hh, da 00 a 23, 24:00:00 come orario finale
Minuti (m) mm, da 01 a 59
Secondi (s) ss, da 01 a 59
Frazioni decimali (f) Frazioni di secondo, pre­ci­sio­ni fa­col­ta­ti­ve

In tutti i formati della norma i valori di date e orari sono suddivisi in diverse unità, ad esempio anno, mese, giorno, ora ecc. dove ogni singola unità viene rap­pre­sen­ta­ta con un numero di cifre stabilito. La norma è applicata in par­ti­co­la­re nel campo scien­ti­fi­co, in quello dello sviluppo di software e per le cor­ri­spon­den­ze in­ter­na­zio­na­li al fine di evitare il rischio di errori nel­l'in­di­ca­zio­ne di date e orari. La marca temporale standard in­ter­na­zio­na­le ISO 8601 (ISO 8601 timestamp) riduce questo rischio in maniera notevole.

Dopo le in­di­ca­zio­ne di date e orari, spesso si esprime anche la dif­fe­ren­za tra il tempo uni­ver­sa­le coor­di­na­to, ab­bre­via­to con la sigla UTC. In questo modo il formato tiene conto anche degli eventuali diversi fusi orari o dell'ora legale specifica di un paese. Come valore, nella regola è uti­liz­za­ta la lettera "Z".

Rap­pre­sen­ta­zio­ne tabellare delle date secondo l'ISO-8601 con in­di­ca­zio­ne dei fusi orari

Esempio Spie­ga­zio­ne
2019-09-07T-15:50+00 15:50 il 07/09/2019 nel fuso orario del tempo uni­ver­sa­le.
2019-09-07T15:50+00Z e cioè 15:50 il 07/09/2019 nel fuso orario del tempo uni­ver­sa­le con l'ag­giun­ta della "Z" nella formula
2019-09-07T15:50+01:00 15:50 il 07/09/2019 nel fuso orario di Roma (CET)

È im­por­tan­te con­si­de­ra­re che: il campo di ap­pli­ca­zio­ne degli anni in questo formato comprende soltanto gli anni che vanno dal 1583 al 9999 perché il ca­len­da­rio gre­go­ria­no è stato in­tro­dot­to soltanto a partire dall'anno 1583. È comunque possibile applicare la norma ISO 8601 anche per in­di­ca­zio­ni di orari e date an­te­ce­den­ti all'anno 1583. In questo caso è però ne­ces­sa­rio un accordo preciso tra "coloro che scambiano le date" per evitare ine­sat­tez­ze.

Vantaggi dello standard ISO 8601 rispetto ad altre varianti in uso

L'ISO 8601 specifica esclu­si­va­men­te dati numerici e non coinvolge dati e orari in cui vengono uti­liz­za­te anche parole. Non è stato infatti pensato come so­sti­tu­zio­ne per for­mu­la­zio­ni lin­gui­sti­che del tipo "4 febbraio 1995". L'ISO 8601 de­v'es­se­re invece uti­liz­za­to per so­sti­tui­re in­di­ca­zio­ni come "2/4/95" (scrittura americana) e "ore 9:30".

I vantaggi della norma ISO 8601 si possono rias­su­me­re come segue:

  • Facile da leggere e scrivere grazie al­l'au­si­lio di software
  • Facile da con­fron­ta­re e ordinare con un semplice confronto di stringhe
  • Com­pren­si­bi­le in­di­pen­den­te­men­te dalla lingua del paese
  • Non può essere confusa con altre in­di­ca­zio­ni di date di uso comune
  • Conforme al comune sistema di ri­par­ti­zio­ne temporale di 24h per cui le unità maggiori (ore) vengono anteposte a quelle inferiori (minuti e secondi)
  • Le stringhe che con­ten­go­no una data seguita da un orario, sono comunque facili da con­fron­ta­re e ordinare (per es: "2019-09-07 20:15:00")
  • La scrittura è breve e ha una lunghezza costante, che facilita sia la di­gi­ta­zio­ne sulla tastiera che lo schema delle tabelle
  • Identica alla scrittura cinese della data, in maniera che i gruppi culturali più grandi di questo pianeta (>25 %) ne abbiano fa­mi­lia­ri­tà
  • Le in­di­ca­zio­ni di data secondo la suc­ces­sio­ne di "anno, mese, giorno" sono mag­gior­men­te diffuse, per es. in Giappone, Corea, Ungheria, Svezia, Finlandia, Danimarca e tanti altri paesi
  • Un'in­di­ca­zio­ne di anno a quattro cifre non comporta problemi di scambio di secolo

Con­ver­ti­re le date

Na­tu­ral­men­te il formato può essere con­ver­ti­to nelle due diverse direzioni. Da una parte una data o un'in­di­ca­zio­ne di data o orario possono essere con­ver­ti­te a partire da quella del proprio paese in quella della norma ISO, dal­l'al­tra anche il formato ISO può essere con­ver­ti­to in quello della propria lingua.

Durante la con­ver­sio­ne da una data ISO (ISO date) a una forma di più "facile" lettura, l'aspetto del Timestamp dell'ISO-8601 è come segue:

String dateString = "2019-09-26T07:58:30.996+0200"

Questa "stringa" è infatti nel formato yyyy-MM-dd. Il se­pa­ra­to­re per l'orario è in questo caso "T" e il formato del­l'o­ra­rio è di HH:mm:ss, più l'in­di­ca­zio­ne UTC.sssz. L'intero formato è dunque di: yyyy-MM-dd ‘T’ HH:mm:ss.SSSZ.

La seguente ope­ra­zio­ne serve a con­ver­ti­re la data ISO nel formato italiano, ossia quello più co­no­sciu­to, cioè HH:mm, dd.MM.yyyy (ora, minuto - giorno, mese, anno).

public String getOurDate() {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
try {
    Date unformatedDate = format.parse(date);
    String formatedDate = new SimpleDateFormat("HH:mm dd.MM.yyyy").format(unformatedDate);
    return formatedDate;
    }   catch (ParseException e){
            System.out.println("Error")
    }
    return date;
}
Consiglio

Oltre alla pos­si­bi­li­tà di con­ver­sio­ne manuale, nel web sono presenti anche alcuni siti che per­met­to­no di con­ver­ti­re au­to­ma­ti­ca­men­te le date nel formato de­si­de­ra­to. Ad esempio DenCode Converter. Qui bisogna sem­pli­ce­men­te inserire la data nel formato di­spo­ni­bi­le e se­le­zio­na­re il formato de­si­de­ra­to per la versione in uscita. È possibile se­le­zio­na­re anche il fuso orario.

Vai al menu prin­ci­pa­le