#01 · Lab
Date Decoder
Una data in cinque cifre, immune al millennium bug, dove sommare una settimana significa aggiungere 7. Un timestamp in dieci cifre che porta con sé anche l’ora. Formati nati per far tornare i conti, vivi più che mai nei sistemi legacy: qui si leggono in chiaro.
Il formato
Numeri al posto delle date
Timestamp unix e date seriali non erano bizzarrie: erano scelte di progetto, e nei sistemi legacy sono ancora al loro posto. Questa è la storia di quei formati, e dello strumento che li rimette in chiaro.
Chi lavora su sistemi bancari, finanziari o assicurativi, e in generale su piattaforme che affondano le radici in qualche decennio fa, prima o poi incontra una data che non sembra una data.
46243è una data seriale: il numero di giorni contati a partire dal 1900.1786233600è un timestamp unix: i secondi trascorsi dal 1° gennaio 1970.20260809è forse il più comprensibile dei formati: anno, mese e giorno uniti in un solo numero.
Tre travestimenti dello stesso giorno, il 9 agosto 2026.
La prima reazione, davanti a un valore così, è chiedersi perché mai qualcuno abbia scelto di scrivere le date in questo modo invece che in chiaro. La risposta è che non era una stranezza: era la soluzione migliore a disposizione, e in molti casi lo è ancora.
Le date seriali
Cinque cifre, e i conti tornano
Torniamo agli anni Novanta. Memoria e spazio su disco costavano, e un archivio bancario non conta i record a centinaia: li conta a milioni. Ogni carattere risparmiato su ogni data di ogni riga diventava spazio vero, e una data seriale ne chiede cinque là dove una data scritta ne chiede come minimo sei.
Nello stesso gesto quel formato si portava dietro un secondo vantaggio, tutt’altro che secondario: era immune al millennium bug. Il problema del 2000 nasceva dalle date a sei cifre, dove l’anno stava in due e il secolo era sottinteso. Una data seriale non sottintende nulla, è un contatore che cresce: il 1999 e il 2001 sono semplicemente due numeri, uno più grande dell’altro. Nessuna finestra da definire, nessuna ambiguità da risolvere.
E poi c’è la parte che fa risparmiare tempo ogni giorno. Essendo progressive, queste date si calcolano a mente. Una settimana dopo? Più sette. Centocinquanta giorni prima? Meno centocinquanta. Quanti giorni separano due date? Una sottrazione. Le stesse operazioni su date scritte per esteso richiedono funzioni del database o di libreria; qui basta un’addizione, e la si scrive direttamente dentro la query.
I timestamp unix
Dieci cifre che contengono anche l’ora
Il timestamp unix nasce da un’altra tradizione, quella dei sistemi Unix e Linux più che del mondo bancario, e risolve un problema più ambizioso: non il giorno, ma l’istante. In dieci cifre tiene insieme data e ora al secondo. Per scrivere la stessa informazione per esteso ne servirebbero almeno quattordici: otto per la data, sei per l’orario.
Ed è un formato che tiene. Resterà a dieci cifre fino al prossimo secolo, senza bisogno di allargare nulla. L’unico limite vero non riguarda le cifre ma il contenitore in cui il numero viene conservato: i sistemi che lo memorizzano in 32 bit si fermano al 19 gennaio 2038. È un problema di magazzino, non di formato, e chi conserva quel numero a 64 bit non ha alcuna scadenza davanti.
Lo strumento
Come funziona il Date Decoder
Lo strumento ha un solo campo e nessuna domanda preliminare. Si incolla il valore, che sia un
timestamp in secondi o in millisecondi, una data seriale, una data compatta AAAAMMGG o una data
scritta normalmente, e il decoder riconosce da sé che cosa ha davanti. L’assunzione che ha fatto
viene sempre dichiarata, ed è modificabile con un tocco quando il riconoscimento non corrisponde
all’intenzione.
Da lì il valore esce tradotto in tutte le altre forme: data locale, UTC, ISO 8601, unix in secondi e in millisecondi, data seriale. Ogni riga si copia con un clic, pronta per finire dentro una query o in un foglio di calcolo.
La seconda metà dello strumento è un calendario. Si naviga l’anno, si sceglie un giorno o un intervallo, e si ottengono i timestamp di inizio e fine giornata con le seriali corrispondenti: esattamente ciò che serve per costruire un filtro temporale su un’estrazione dati. È il caso d’uso da cui è partito tutto.
Le assunzioni
I dettagli che fanno la differenza
Le date dei fogli di calcolo portano con sé un errore storico. Lotus 1-2-3 trattò il 1900 come anno
bisestile; Excel ne copiò il comportamento per compatibilità con i file esistenti e non è mai
tornato indietro. Risultato: il seriale 60 corrisponde al 29 febbraio 1900, un giorno mai esistito.
Il Date Decoder conosce la storia, segnala il giorno fantasma e lo legge come 28 febbraio. E quando
un valore non è rappresentabile, per esempio una data anteriore al 1900, lo dice apertamente invece
di produrre un’approssimazione. I vecchi Excel per Mac usavano inoltre un sistema con epoca 1904: se
i numeri sembrano sbagliati di quattro anni, la causa è quella.