FAQ di Convertitore timestamp Linux
Q: Cos'è un timestamp Unix?
A: Un timestamp Unix (noto anche come POSIX time o epoch time) è il numero di secondi trascorsi dal 1° gennaio 1970, 00:00:00 UTC, esclusi i secondi intercalari. È un semplice intero che rappresenta lo stesso istante a livello globale, indipendentemente dal fuso orario.
Q: Come posso convertire un timestamp Unix in una data leggibile?
A: Puoi convertire un timestamp Unix in diversi modi:
- Online: utilizza il nostro Convertitore di timestamp Unix per una conversione immediata
- Terminale Linux: esegui
date -d @1785292800(su GNU/Linux) oppuredate -r 1785292800(su macOS) - JavaScript:
new Date(timestamp * 1000).toISOString() - Python:
datetime.utcfromtimestamp(1785292800) - PHP:
date("Y-m-d H:i:s", 1785292800)
Q: Qual è la differenza tra timestamp in secondi e in millisecondi?
A: Un timestamp basato sui secondi è composto da 10 cifre (ad es. 1785292800). Un timestamp in millisecondi è composto da 13 cifre (ad es. 1785292800000) perché moltiplica il valore in secondi per 1000. Date.now() di JavaScript restituisce millisecondi, mentre la maggior parte degli altri sistemi e API usa i secondi. Mescolarli accidentalmente produce date enormemente sbagliate: usare i millisecondi dove ci si aspettano secondi genera una data di circa 56.000 anni nel futuro.
Controlla sempre la risoluzione della tua fonte dati prima di convertire. In caso di dubbio, conta le cifre: 10 cifre = secondi, 13 cifre = millisecondi.
Q: I timestamp Unix possono rappresentare date precedenti al 1970?
A: Sì. Le date precedenti al 1° gennaio 1970 sono rappresentate come numeri negativi. Ad esempio, il timestamp -3600 corrisponde al 31 dicembre 1969, 23:00:00 UTC. Non tutti gli strumenti di conversione gestiscono correttamente i timestamp negativi, ma il nostro convertitore online sì. I linguaggi di programmazione li supportano universalmente.
Q: Che cos'è il problema dell'anno 2038?
A: Il problema dell'anno 2038 (chiamato anche Y2K38) è un problema di rappresentazione del tempo che riguarda i sistemi che memorizzano i timestamp come interi con segno a 32 bit. Il valore massimo è 2147483647, che corrisponde al 19 gennaio 2038 alle 03:14:07 UTC. Un secondo dopo, il valore va in overflow diventando -2147483648, interpretato come 13 dicembre 1901.
La maggior parte dei moderni sistemi a 64 bit non è interessata, ma i dispositivi embedded, i database legacy e alcuni sistemi a 32 bit rimangono vulnerabili. La soluzione è migrare a rappresentazioni del tempo a 64 bit, che offrono un intervallo di circa 292 miliardi di anni.
Q: I timestamp Unix tengono conto dei secondi intercalari?
A: No. I timestamp Unix ignorano intenzionalmente i secondi intercalari. Ogni giorno viene trattato come esattamente 86.400 secondi, anche quando viene aggiunto un secondo intercalare al UTC. Durante l'inserimento di un secondo intercalare, il timestamp Unix non avanza per un secondo, saltando di fatto il secondo intercalare. Ciò significa che i timestamp Unix divergono dal tempo atomico di una quantità piccola (attualmente circa 27 secondi) ma in continua crescita.
Q: Come gestisco i fusi orari quando converto i timestamp Unix?
A: Un timestamp Unix rappresenta lo stesso istante ovunque. Il fuso orario conta solo quando lo visualizzi come data leggibile. Memorizza sempre i timestamp nella loro forma intera grezza e convertili nell'ora locale solo per la visualizzazione. Utilizza i nomi di fuso orario IANA come America/New_York invece di abbreviazioni come EST o PST, poiché le abbreviazioni non tengono conto dell'ora legale. Il nostro Convertitore di timestamp Unix mostra i risultati su più fusi orari contemporaneamente.
Q: Qual è il timestamp Unix massimo?
A: Il massimo dipende dalla dimensione dell'intero usato per la memorizzazione:
- Intero con segno a 32 bit:
2147483647(19 gennaio 2038, 03:14:07 UTC) - Intero senza segno a 32 bit:
4294967295(7 febbraio 2106, 06:28:15 UTC) - Intero con segno a 64 bit:
9223372036854775807(circa 292 miliardi di anni da adesso)
La maggior parte dei sistemi moderni utilizza interi a 64 bit, fornendo un intervallo di fatto infinito. La pratica comune di memorizzare i timestamp nelle colonne dei database o nelle strutture dati come tipo a 64 bit (BIGINT in SQL) è a prova di futuro.