Glossary
ISO 8601
Il formato testuale non ambiguo per data e ora
By Buğra SözeriPublished Updated
ISO 8601 è lo standard internazionale per la rappresentazione di date e ore come testo. Pubblicato dalla International Organization for Standardization nel 1988 e rivisto periodicamente da allora. La forma canonica per un timestamp completo è:
YYYY-MM-DDTHH:MM:SSZ
— ad esempio, 2026-05-14T14:30:00Z. La T separa le porzioni di data e ora; la Zindica UTC (Zulu time, nella nomenclatura militare). Per i fusi diversi da UTC, il suffisso è l’offset con segno: +03:00 per Istanbul, -05:00 per US Eastern in inverno.
Perché ISO 8601 ha vinto la guerra dei formati:
- Non ambiguo.La maggior parte degli altri formati di data collidono. “01/02/2026” significa 2 gennaio negli USA e 1 febbraio quasi ovunque altrove. ISO 8601 ha un solo parsing.
- Ordinabile come stringa.L’ordine lessicografico equivale all’ordine cronologico.
2026-05-14si ordina dopo2026-05-13con un semplice confronto testuale. - Indipendente dalla localizzazione. Indipendente da quale lingua usa il lettore per i nomi dei mesi.
- L’anno per primo rende l’estrazione triviale. Hai bisogno solo della data da un timestamp? Prendi i primi 10 caratteri.
I linguaggi di programmazione e le API moderne predefiniscono ISO 8601.Date.prototype.toISOString() di JavaScript emette ISO 8601. JSON non ha un tipo di data nativo; ISO 8601 è la convenzione non scritta. PostgreSQL, MySQL, MongoDB e SQLite accettano tutti le stringhe ISO 8601 come input di data.
RFC 3339 è un sottoinsieme più restrittivo di ISO 8601 usato dai protocolli Internet. La differenza è piccola — RFC 3339 richiede il separatore T (ISO 8601 consente uno spazio) e richiede un offset di fuso orario (ISO 8601 consente di ometterlo). Per tutti gli scopi pratici trattali come lo stesso standard.
Formati per numero di settimana e data ordinale — le modalità meno conosciute di ISO 8601:lo standard definisce anche un formato per settimana dell’anno (2026-W21-5significa “venerdì della settimana ISO 21, 2026”) e un formato di data ordinale (2026-141significa “il 141° giorno del 2026”). Le settimane ISO iniziano sempre di lunedì, e la settimana 1 è quella che contiene il primo giovedì dell’anno — il che a volte mette le date di fine dicembre nella settimana 1 dell’anno successivo (es. il 29 dicembre 2025 è nella settimana 2026-W01). La maggior parte del software di calendario rispetta questa convenzione per le viste con numerazione delle settimane; i database con funzioni di data (Postgres EXTRACT(week FROM ...), MySQL WEEK()) espongono modalità per settimane ISO e non ISO — scegliere quella sbagliata è un errore comune nei report.
Parsing permissivo vs. rigoroso — la trappola di JavaScript: new Date("2026-05-14") viene analizzato come mezzanotte UTC (perché le stringhe ISO solo-data sono specificate come UTC). new Date("2026-05-14T00:00:00")senza un fuso orario viene analizzato come mezzanotte locale (la specifica è cambiata in ES2016 — prima era UTC). La stessa stringa può produrre timestamp diversi in browser diversi se i motori non concordano su quale versione della specifica implementano. Includi sempre una Z esplicita o un offset nelle stringhe ISO 8601 memorizzate per evitarlo. Riferimento: ISO 8601:2019 — Rappresentazioni di data e ora, RFC 3339.
Prova il calcolatore
Converti tra stringhe ISO 8601 e valori epoch Unix senza sorprese di fuso orario.
Apri il convertitore di timestamp →Frequently asked questions
- Che cos’è ISO 8601?
- ISO 8601 è lo standard internazionale per la rappresentazione di date e ore come testo. Specifica formati come 2026-05-31 per le date e 2026-05-31T14:30:00Z per i timestamp, progettati per essere non ambigui tra le localizzazioni e ordinabili lessicograficamente.
- Perché usare ISO 8601 invece di formati specifici per localizzazione?
- Formati come 01/02/03 sono interpretati in modo diverso dai lettori statunitensi, europei e asiatici. L’ordine anno-primo di ISO 8601 è globalmente non ambiguo e si ordina correttamente come testo normale, rendendolo ideale per API, database e file di log.
- Cosa significa il suffisso Z in un datetime ISO 8601?
- Z sta per Zulu time, ovvero UTC+0. Un datetime che termina con Z (es. 2026-05-31T14:30:00Z) è espresso in Coordinated Universal Time senza offset. Al posto di Z può comparire un offset come +05:30 per indicare un fuso locale.
- ISO 8601 è uguale a RFC 3339?
- Quasi — RFC 3339 è un profilo più restrittivo di ISO 8601 usato nei protocolli internet. RFC 3339 richiede sempre un offset di fuso orario e non ammette alcune funzionalità opzionali di ISO 8601 come le date di settimana, rendendolo la scelta più sicura per i campi datetime nelle API.
Related
Published May 14, 2026 · Last reviewed May 31, 2026