Italiano

Strumenti per sviluppatori · Convertitore di timestamp Unix

Secondi bisestili e tempo Unix: perché l'epoca finge che non esistano

· Sfondo

timestamp tempo Unix fusi orari

Una sequenza temporale che va direttamente da 23:59:59 a mezzanotte
Illustrazione vettoriale originale ToolAcre

UTC ha inserito i secondi intercalari da 1972, ma il tempo Unix semplicemente non li conta, il che significa che alcuni secondi sono accaduti due volte. Questo post spiega perché, cos'è la diffamazione e perché è prevista la fine dell'intera pratica.

Il secondo si è verificato due volte: un 23:59:60 in un sistema, un 23:59:59 ripetuto in un altro e un errore di chiave duplicata a mezzanotte

ToolAcre non può produrre una riga ISO che termina con `23:59:60`. Il suo test nomina il limite del secondo intercalare e prevede che un valore di epoca venga formato come `2016-12-31T23:59:59.000Z` e quello successivo come `2017-01-01T00:00:00.000Z`. Non c'è alcun secondo visualizzabile in più tra di loro.

Questo fatto può influire sui log la cui origine esterna utilizzava un'altra convenzione, ma questo repository non contiene prove di incidenti con chiavi duplicate. Se in un sistema compaiono etichette ripetute, ispeziona l'orologio e il percorso di archiviazione anziché attribuirli automaticamente al convertitore.

Un sistema che richiede un'etichetta univoca per ogni secondo fisico necessita quindi di più contesto rispetto a questa mappatura Unix-to-Date. Il trasformatore non può produrre un'etichetta omessa dal suo modello.

ToolAcre non risulta rappresentabile 23:59:60; non documenta gli incidenti relativi alla chiave duplicata

Lo schema spiegava il tempo atomico, la rotazione terrestre e una soglia di tolleranza. Tali affermazioni scientifiche e standard non sono stabilite dal codice di marcatura temporale o dai test. Sono intenzionalmente tralasciati piuttosto che parafrasati a memoria. Il meccanismo qui non dimostra le ragioni alla base della politica globale di cronometraggio.

Per utilizzare questo percorso, le prove necessarie sono più semplici: la data e l'output ISO espongono le seconde etichette ordinarie e l'epoca in stile POSIX avanza oltre il confine testato. Una trattazione della governance “leap-second” richiederebbe materiale autorevole oltre i percorsi di archiviazione consentiti.

Questo confine è esplicito piuttosto che evasivo: i test del software rispondono a domande di rappresentazione, mentre la storia scientifica ha bisogno di materiale scritto a tale scopo e rivisto secondo i propri termini.

La logica fisica dei secondi intercalari richiede fonti esterne a questo repository

Il modello implementato si comporta come se i giorni civili sul suo asse avessero 86,400 secondi Unix numerati. Gli input interi consecutivi differiscono di un secondo, anche all'interno del limite dell'anno 2016. `fromEpoch` moltiplica ciascuno per 1,000 e Data formatta il conteggio dei millisecondi risultante.

Chiamare questo "ignorare" i secondi intercalari descrive l'output osservabile: nessun valore Unix univoco è mappato su un'etichetta `:60`. Ciò non implica che ogni orologio della macchina avanzi in modo identico durante un inserimento reale. Il convertitore accetta un conteggio; non campiona né disciplina l'orologio host.

L'aritmetica su intervalli più ampi segue la stessa convenzione, quindi la sottrazione di due valori Unix misura la differenza di conteggio in stile POSIX anziché ricostruire le etichette dei salti omessi.

La conversione testata non ha un'etichetta di secondo intercalare tra valori di epoche consecutive

I sistemi possono applicare passaggi, ripetizioni o sbavature, ma il repository non identifica quali fornitori utilizzano quale metodo, in quale intervallo o con quale formula. Pubblicare questi dettagli senza prove dirette creerebbe una precisione operativamente pericolosa. Questo articolo quindi non promette un orologio specifico per la piattaforma.

Se gli eventi vicini a un confine di salto sono importanti, preservare la documentazione dell'orologio della sorgente e i valori grezzi. Due sistemi con gestione diversa possono non essere d'accordo anche dopo che entrambi i valori sono stati formattati come UTC. La conversione da sola non può riconciliare il loro comportamento di campionamento o recuperare una distinzione di scala omessa.

La scelta del runtime può anche influenzare l’ordine di breve durata attorno all’evento. Conserva i contatori monotoni o i dati di sequenza specifici dell'origine quando tale distinzione è importante a livello operativo.

Il comportamento del passo dell'orologio e dello smear è specifico della piattaforma e non verificato qui

Inserisci 1,483,228,799 secondi: il risultato ISO verificato è `2016-12-31T23:59:59.000Z`. Incrementa l'input una volta a 1,483,228,800: il risultato è `2017-01-01T00:00:00.000Z`. Sottraendo i numeri interi si ottiene uno, corrispondente alla progressione visualizzata in questo modello.

Le righe locali possono mostrare date o offset diversi a seconda del browser, ma derivano da quegli stessi istanti. Utilizza le righe ISO per il controllo dei confini. Una modifica della zona locale non è correlata all'esistenza o meno di un'etichetta del secondo intercalare.

La coppia è un utile test di regressione perché non esiste alcuna dipendenza locale nelle stringhe ISO. Blocca direttamente il comportamento del convertitore sul bordo rilevante.

Esempio funzionale: il limite 2016 testato del repository

La cartella di lavoro faceva riferimento a una risoluzione 2022 e a una scadenza futura. Nessuno standard o fonte politica fa parte delle prove di implementazione, quindi qui non vengono affermate né date né previsioni. La politica di cronometraggio può cambiare e merita una citazione autorevole al momento della pubblicazione.

Omettere tale affermazione non indebolisce la guida del software. I dati esistenti necessitano ancora della documentazione della scala, dell'unità e della fonte di clock. Il comportamento attuale di un convertitore rimane verificabile indipendentemente dalle decisioni sulle future pratiche del tempo civile.

I manutentori possono aggiungere il contesto della policy in un secondo momento citando direttamente la risoluzione. Fino ad allora, escludere una scadenza è più accurato che pubblicare una garanzia futura non supportata.

Le future risoluzioni politiche vengono omesse senza una fonte autorevole

TAI, GPS e altre scale possono rappresentare il tempo in modo diverso, ma ToolAcre non offre alcun selettore o tabella di offset per loro. Incollare un conteggio come Unix secondi applica semplicemente l'interpretazione in stile 1970 POSIX. Un risultato leggibile può ancora essere semanticamente sbagliato.

Trasforma altre scale con una fonte che ne definisce l'origine e la relazione nell'istante rilevante, quindi esamina il valore Unix risultante. Non aggiungere una costante ricordata: le relazioni che coinvolgono la storia dei salti sono esattamente i luoghi in cui l'aritmetica non originata diventa fragile.

L'assenza di una modalità è visibile nelle tre opzioni dell'unità dell'interfaccia utente. Nessuno cambia la scala temporale; automatico seleziona semplicemente tra due risoluzioni Unix.

Altre scale temporali sono esterne all'implementazione di questo convertitore Unix

Per questo convertitore, la regola verificata è un passaggio diretto da 23:59:59 a 00:00:00 al confine testato. Questo modello supporta l'aritmetica delle epoche ordinarie e spiega perché non viene visualizzato alcun output `:60`. Non certifica come si è comportato l'orologio del sistema operativo mentre passava il confine reale.

Quando la precisione nella gestione del salto è importante, la conversione è l'ultimo passaggio della presentazione, non la fonte della prova. Raccogli prima la documentazione sulla scala dell'orologio, il comportamento di sincronizzazione e i campi degli eventi non elaborati. ToolAcre può quindi mostrare cosa significa un conteggio Unix dichiarato nel suo modello testato.

Per i registri ordinari lontani dai confini del balzo, questa sfumatura cambia raramente nella visualizzazione. In prossimità dei confini sensibili, tuttavia, la denominazione del modello previene false affermazioni di fedeltà al secondo fisico.