Italiano

Strumenti per sviluppatori · Convertitore di timestamp Unix

Epoche di microsecondi e nanosecondi: accorciamento dei valori delle cifre 16 e 19

· Come funziona

timestamp tempo Unix flusso di lavoro dello sviluppatore

Un lungo valore di nanosecondi che si restringe da microsecondi a millisecondi
Illustrazione vettoriale originale ToolAcre

Alcuni runtime emettono epoche in microsecondi o nanosecondi, fornendo valori di sedici o diciannove cifre che un convertitore di secondi o millisecondi non può leggere direttamente. Questo post spiega da dove provengono e come accorciarli in sicurezza.

Un numero di diciannove cifre in una traccia: l'output time.UnixNano incollato in un convertitore e il risultato che non aveva senso

Un campo traccia di diciannove cifre può essere un'epoca di nanosecondi, ma incollarlo direttamente in questo convertitore non verifica tale ipotesi. ToolAcre accetta secondi o millisecondi. Il suo errore di intervallo suggerisce addirittura che un numero di database sovradimensionato potrebbe utilizzare microsecondi o nanosecondi, indicando all'utente di normalizzare prima di interpretare.

Conserva il testo originale durante le indagini. Convertendolo in un numero JavaScript ordinario è già possibile alterare le cifre di ordine inferiore prima che avvenga qualsiasi divisione. Lo schema del produttore, l'istruzione di registrazione o la definizione della colonna del database sono una prova migliore della lunghezza visiva, specialmente per i contatori che non sono affatto epoche Unix.

Le quattro risoluzioni comuni: secondi, millisecondi, microsecondi e nanosecondi, con i relativi conteggi di cifre per le date attuali

I secondi avanzano una volta al secondo, i millisecondi mille volte più velocemente, i microsecondi un milione di volte e i nanosecondi un miliardo di volte. Intorno alle date attuali queste appaiono spesso come dieci, tredici, sedici e diciannove cifre decimali. "Spesso" conta: segni negativi, date anticipate e intervalli distanti infrangono la regola delle sole cifre.

La soglia automatica del pannello distingue solo i secondi dai millisecondi alla magnitudo 10¹¹. Un valore di microsecondi di sedici cifre supera tale limite e verrebbe trattato come millisecondi, generalmente superando la data prevista di un fattore mille. Selezionare un'unità solo dopo aver ridotto la risoluzione non supportata a uno dei nomi del percorso.

Sono comuni quattro etichette di risoluzione, ma il solo conteggio delle cifre non costituisce un contratto di formato

La struttura nominava diverse API linguistiche e prodotti di archiviazione, ma nessuno è un file sorgente per questo strumento. Invece di dare per scontato quale produttore abbia emesso un campo, controlla la sua documentazione. Un suffisso come `_us` o `_ns`, una precisione dichiarata o un evento adiacente noto forniscono la prova che la larghezza decimale non può.

Distinguere anche un'epoca da una durata monotona. Un contatore ad alta risoluzione può misurare il tempo trascorso dall'avvio o dall'avvio del processo e non ha alcuna relazione con 1970. La divisione di tale valore produce un contatore più piccolo, non una data di calendario. Conferma sia l'unità che l'origine prima di portare il risultato a un convertitore di epoche.

Identificare la risoluzione del produttore, non un elenco di presunti emettitori

Per ridurre i microsecondi a millisecondi, rimuovere un fattore di 1,000; per nanosecondi, rimuovi 1,000,000. La divisione intera esclude deliberatamente la precisione inferiore al millisecondo. Per un valore positivo, il troncamento prende il conteggio iniziale dei millisecondi. Per gli aspetti negativi, scegli una regola di arrotondamento che corrisponda al produttore anziché presupporre che l'affettamento delle stringhe abbia una semantica identica.

Esegui l'operazione con testo decimale o BigInt quando la precisione è importante. La divisione in virgola mobile può iniziare da un numero di diciannove cifre già arrotondato. Conserva il resto scartato accanto all'istante convertito se un'indagine necessita di un ordine degli eventi entro un millisecondo; ToolAcre non può visualizzare queste distinzioni inferiori al millisecondo.

Esempio elaborato: 1700000000123456789: riduzione in millisecondi, lettura del risultato e annotazione delle cifre inferiori al millisecondo messe da parte

Prendi `1738577696123456789` come nanosecondi. Trattalo come testo decimale, dividi per 1,000,000 con l'aritmetica dei numeri interi e ottieni 1,738,577,696,123 millisecondi con un resto di 456,789 nanosecondi. Immettere esplicitamente il quoziente dei millisecondi; la sua lettura ISO è `2025-02-03T10:14:56.123Z`.

Il resto non è rumore: due eventi di traccia possono condividere il millisecondo visualizzato pur differendo al di sotto di esso. Memorizza i valori grezzi per l'ordinazione e utilizza l'output ridotto solo per l'orientamento umano. L'arrotondamento per eccesso a 1,738,577,696,124 sposterebbe l'istante visualizzato al millisecondo successivo e indicherebbe in modo errato la fonte.

La divisione delle stringhe può essere rivista cifra per cifra: sei cifre decimali rimosse corrispondono esattamente alla scala da nanosecondo a millisecondo, mentre il prefisso intatto rimane il conteggio del calendario.

Esempio realizzato: preservare un valore 19-cifre come testo riducendolo a millisecondi

La garanzia dell'intero esatto di JavaScript termina ben al di sotto dei tipici valori epoch di diciannove cifre. Il parser di ToolAcre alla fine chiama `Number`, quindi inserire il testo grezzo in nanosecondi attraverso il pannello non può preservare ogni cifra. Il limite di data supportato e il selettore di unità non trasformano il numero in un contenitore di numeri interi di nanosecondi.

Utilizza BigInt o un percorso di preelaborazione in grado di riconoscere le stringhe per la riduzione, quindi passa il risultato in millisecondi con dimensioni sicure. Questa sequenza è importante: analizzare prima e dividere per seconda può corrompere esattamente le cifre che speravi di conservare. Un rendering del calendario riuscito non dimostra che il valore di origine di ordine inferiore sia sopravvissuto.

Ciò che questo non copre: precisione dell'orologio, che non è correlata alla risoluzione: un timestamp di nanosecondi può ancora essere sbagliato di pochi secondi

La risoluzione ti dice quanto finemente una rappresentazione può distinguere i valori; non ti dice quanto vicino era l'orologio al tempo fisico. Un campo di nanosecondi può essere derivato da una fonte imprecisa, mentre un campo di secondi può essere ben sincronizzato. Il convertitore non misura la qualità dell'orologio e non fa alcuna affermazione del genere.

Allo stesso modo, le cifre aggiuntive possono essere una precisione riempita anziché una precisione misurata. Per l'analisi degli incidenti, confrontare gli orologi utilizzando le prove di sincronizzazione e confrontare l'ordine degli eventi utilizzando il contatore documentato non elaborato. La conversione del calendario fornisce solo la leggibilità. Non dedurre la precisione da una lunga coda decimale o da tre millisecondi mostrati in ISO.

Conclusione: ridurre prima a millisecondi, quindi convertire - e come il convertitore di timestamp Unix legge il valore abbreviato con l'unità dichiarata

Ridurre la risoluzione non supportata prima della conversione, conservare l'originale e indicare il resto scartato. ToolAcre può quindi fare ciò che promette il suo contratto: leggere i secondi o millisecondi risultanti e mostrare i moduli UTC, locale e ISO con l'unità selezionata visibile.

Se la data normalizzata continua a non avere senso, rivisitare l'origine anziché eliminare ripetutamente le cifre. Un contatore dall'avvio, un'altra epoca o una codifica non documentata possono rimanere errati su ogni scala. Unità, origine e precisione intera sono domande separate; rispondi a tutti e tre prima di fidarti di una data leggibile dall'uomo.

Il selettore dell'unità esplicita è importante dopo la riduzione perché il rilevamento automatico è solo predefinito. La scelta dei millisecondi registra la decisione di preelaborazione invece di chiedere all'euristica della grandezza di riscoprirla.