Per ricavare un offset UTC, sottrai la data e l’ora UTC dalla data e dall’ora locali corrispondenti, tenendo conto dell’eventuale cambio di data. In Numbers sul Mac puoi calcolarlo in minuti senza scegliere un fuso orario con nome.

Questa guida è rivolta a chi verifica un timestamp di pubblicazione confrontandolo con il suo equivalente UTC. Tutte le date di pubblicazione riportate di seguito sono sintetiche. L’obiettivo è ricavare l’offset relativo a quell’istante di pubblicazione e registrare ciò che le prove consentono di concludere.

Quali informazioni servono prima di calcolare?

Servono due rappresentazioni dello stesso momento di pubblicazione: una data e un’ora locali complete e una data e un’ora UTC complete. Verifica che entrambe si riferiscano alla pubblicazione, e che una non descriva la pubblicazione mentre l’altra si riferisce a una modifica successiva. La corrispondenza tra le due è un prerequisito: una differenza numerica plausibile non dimostra che i valori siano correlati.

Tieni distinti questi quattro concetti:

Concetto Esempio sintetico Cosa indica
Data civile 2026-07-01 Un giorno di calendario, senza un’ora o un rapporto con UTC
Data e ora locali 2026-07-01 05:25:00 Campi di calendario e orologio che richiedono ancora un offset o un fuso orario per identificare un istante
Istante 2026-06-30T23:40:00Z Un momento specifico espresso in UTC
Offset UTC +05:45 La differenza tra l’orologio locale e UTC in quel momento
Fuso orario con nome Un identificatore di fuso orario IANA fornito Un insieme di regole per determinare gli offset in istanti diversi

Apple fa una distinzione simile in Foundation: Date rappresenta un punto nel tempo indipendente da un calendario o da un fuso orario, mentre DateComponents rappresenta campi di calendario interpretati con un calendario e un fuso orario. Una stringa di data visualizzata e un istante sono quindi tipi di input diversi. Apple: date e orari

Per questo foglio di calcolo, usa date gregoriane valide e secondi interi compresi tra 00 e 59. Conserva le stringhe originali dei timestamp accanto ai calcoli. Se una delle fonti fornisce solo una data o un’ora senza la data, procurati le informazioni mancanti prima di calcolare un offset esatto.

Come funziona il calcolo dell’offset?

RFC 3339 definisce la convenzione del segno come ora locale meno UTC. Un risultato positivo significa che l’orologio locale è avanti; uno negativo significa che è indietro. Per ricavare UTC, sottrai l’offset dalla data e dall’ora locali. RFC 3339, sezione 4.2

Per la prima pubblicazione sintetica, i valori abbinati sono:

  • UTC: 2026-06-30T23:40:00Z
  • Locale: 2026-07-01 05:25:00
  • Differenza: positiva, 5 ore e 45 minuti
  • Offset ricavato: +05:45

La data locale è un giorno successiva. Considerare solo gli orari darebbe una differenza negativa fuorviante. Un calcolo esplicito in minuti mostra perché la data è importante:

offset_minuti = 1440 × differenza_giorni_calendario
                 + minuti_orario_locale
                 - minuti_orario_UTC

differenza_giorni_calendario = +1
minuti_orario_locale = 5 × 60 + 25 = 325
minuti_orario_UTC = 23 × 60 + 40 = 1420

offset_minuti = 1440 + 325 - 1420 = 345
345 minuti = 5 ore e 45 minuti

Qui, la differenza in giorni di calendario indica la differenza tra le date complete. Non sottrarre i numeri dei giorni del mese: dal 30 giugno al 1º luglio passa un giorno, anche se 1 - 30 è negativo. Il foglio di calcolo seguente gestisce il cambio di mese con l’aritmetica delle date.

Come si calcola in Numbers sul Mac?

Servono Numbers installato e un foglio di calcolo con una tabella. Gli esempi usano i nomi delle funzioni in inglese e la virgola come separatore. Se l’editor delle formule richiede un separatore diverso, inserisci la funzione tramite il Browser funzioni e compila i campi degli argomenti.

1. Crea colonne con etichette chiare

Usa la riga 1 per queste etichette: Campi UTC in A1, Campi locali in B1, Minuti offset in C1 e UTC ricostruito in D1. Queste etichette descrivono gli input; inserire una data nella colonna A non esegue di per sé una conversione di fuso orario.

Seleziona le colonne A e B, quindi usa la barra laterale Formato, il pannello Cella e il menu Formato dati per scegliere Data e ora. Scegli formati di visualizzazione che mostrino la data e l’ora complete, compresi i secondi. Apple documenta questi controlli nella guida alla formattazione delle celle di Numbers.

2. Inserisci esplicitamente i due valori

Fai clic su A2 e inserisci la formula seguente. Premi Return per confermarla:

=DATE(2026,6,30)+DURATION(0,0,23,40,0,0)

In B2, inserisci:

=DATE(2026,7,1)+DURATION(0,0,5,25,0,0)

DATE usa numeri separati per anno, mese e giorno, evitando stringhe di data ambigue. DURATION usa settimane, giorni, ore, minuti, secondi e millisecondi, in quest’ordine. In questo caso, aggiungere una durata a ciascuna data fornisce l’ora corrispondente. Apple: DATE, Apple: DURATION

Verifica che A2 mostri il 30 giugno alle 23:40:00 e B2 il 1º luglio alle 05:25:00. Stai rappresentando i due insiemi di campi di calendario da sottrarre. Conserva nelle note della fonte il suffisso UTC originale, invece di affidarti all’aspetto della cella del foglio di calcolo per identificare UTC.

3. Sottrai locale meno UTC

In C2, inserisci:

=DUR2MINUTES(B2-A2)

Il risultato atteso è 345. Sottrarre i valori di data e ora produce una durata, e DUR2MINUTES esprime tale durata in minuti. Se necessario, imposta Formato dati di C2 su Numero. Apple: DUR2MINUTES

Per inserire o controllare una formula, seleziona la cella e digita =; Numbers apre l’Editor formule. Se una formula genera un errore, fai clic sull’indicatore di errore per leggerne la spiegazione prima di continuare. Apple: calcolare i valori usando i dati nelle celle di una tabella in Numbers sul Mac

4. Scrivi l’offset con segno e controlla il risultato

Converti il numero assoluto di minuti in ore intere e minuti rimanenti. Per 345, sono 5 ore e 45 minuti. Poiché il risultato è positivo, registra +05:45. Un risultato di -210 diventerebbe -03:30; il segno si applica all’intero offset.

In D2, inserisci il calcolo inverso:

=B2-DURATION(0,0,0,C2,0,0)

Imposta il formato di D2 su Data e ora, mostrando entrambi i componenti. Dovrebbe mostrare la stessa data e ora di A2. Questo controlla la direzione dell’aritmetica e la ricostruzione. Non dimostra in modo indipendente che gli input originali descrivano la stessa pubblicazione.

Quali esempi aiutano a individuare errori di data e di segno?

Usa queste coppie sintetiche per verificare la tua interpretazione. Per ogni riga aggiuntiva, costruisci A e B con DATE più DURATION, poi usa nella sottrazione i riferimenti alle celle di quella riga.

Timestamp UTC della pubblicazione Campi locali corrispondenti Minuti offset Offset
2026-06-30T23:40:00Z 2026-07-01 05:25:00 345 +05:45
2026-07-01T02:15:00Z 2026-06-30 22:45:00 -210 -03:30
2026-08-31T23:30:00Z 2026-09-01 01:30:00 120 +02:00

La seconda coppia attraversa la mezzanotte a ritroso, fino alla data locale precedente. La terza attraversa un cambio di mese con un offset di un’ora intera. Insieme, aiutano a individuare una sottrazione invertita, date omesse e l’ipotesi che gli offset debbano sempre corrispondere a un numero intero di ore.

Mantieni visibili abbastanza cifre decimali da rilevare un risultato frazionario in minuti. Con questi input in secondi interi, una frazione inattesa merita di essere verificata: controlla i secondi, la precisione degli input e che i record corrispondano davvero. Non arrotondarla semplicemente per ottenere un offset più comune. Gli offset numerici di RFC 3339 hanno precisione al minuto, quindi una discrepanza che include secondi non può essere rappresentata fedelmente aggiungendo un offset HH:MM. RFC 3339, sezione 4.2

Perché non è possibile dedurre un unico fuso orario con nome?

Un offset descrive il rapporto in un singolo istante. Un fuso orario con nome fornisce regole per determinare quel rapporto in altri istanti. RFC 9557 distingue esplicitamente questi concetti e spiega perché un offset da solo non basta per le operazioni sul calendario locale, come trovare la stessa ora locale il giorno successivo. Un offset corrispondente non permette quindi di identificare un unico fuso orario con nome. RFC 9557: definizione di fuso orario

Registra il risultato come “Offset di pubblicazione ricavato: +05:45; fuso orario con nome: sconosciuto.” Se in seguito ottieni dalla fonte un identificatore di fuso orario, conservalo separatamente. Altre pubblicazioni abbinate possono rivelare altri offset, ma per selezionare un fuso orario servono prove ulteriori rispetto alla scelta di una voce corrispondente.

Le API di Apple seguono questa direzione di calcolo. TimeZone.secondsFromGMT(for:) usa un fuso orario e una data esistenti per calcolare l’offset. L’argomento data ha come valore predefinito la data corrente, quindi per verificare una pubblicazione bisogna specificare l’istante di pubblicazione. Il metodo non accetta un offset per restituire il fuso orario con nome originale. Apple: secondsFromGMT(for:)

Quando è opportuno fermarsi e procurarsi input migliori?

Prima di accettare il risultato, segui questa sequenza decisionale:

  1. Sono disponibili solo date civili: procurati gli orari e un riferimento UTC. Una data da sola non identifica un istante.
  2. Il riferimento ha un offset numerico diverso da zero: convertilo in UTC usando l’offset indicato prima di usare questo foglio di calcolo.
  3. Entrambi gli input sono già stati convertiti in istanti: conserva o recupera i campi locali originali. Sottrarre due rappresentazioni dello stesso istante dopo la normalizzazione dà zero.
  4. La differenza cambia quando vengono mostrate le date: controlla i valori completi memorizzati. Una data nascosta fa comunque parte del calcolo.
  5. Il calcolo funziona ma non sei certo dell’abbinamento: conserva il risultato come differenza candidata finché non viene confermata la corrispondenza con la pubblicazione.

Numbers può inserire automaticamente componenti mancanti: Apple specifica che inserendo solo un orario viene aggiunta la data odierna. Nascondere una data o un orario ne modifica la visualizzazione, mentre il valore resta disponibile per i calcoli. Controlla la Vista cella intelligente se la cella visibile non chiarisce ogni dettaglio. Apple: formattare date, valuta e altro in Numbers sul Mac

Inoltre, un timestamp UTC che termina in Z stabilisce l’istante UTC senza stabilire il fuso locale originale. RFC 9557 aggiorna il trattamento di Z in RFC 3339 per contemplare un offset locale sconosciuto. Per questa ricostruzione è quindi essenziale disporre separatamente della rappresentazione locale. RFC 9557, sezione 2.2

Per completare la verifica di una pubblicazione, conserva la coppia originale, l’offset con segno e il motivo per cui i due valori rappresentano lo stesso momento. Otterrai così un risultato riproducibile, lasciando sconosciuto il fuso orario con nome quando le prove non ne identificano uno.

Fonti