Utilia

Convertidor de marca de temps Unix

Converteix marques de temps Unix en segons o mil·lisegons a dates llegibles en hora local, UTC i ISO 8601, i torna qualsevol data a temps epoch.

Marca de temps actual
–

Marca de temps → data

Hora local
–
UTC
–
ISO 8601
–

Data → marca de temps

Segons
–
Mil·lisegons
–

Com utilitzar el convertidor de marca de temps Unix

  1. Per convertir una marca de temps en una data, enganxa un valor epoch com 1700000000 o 1700000000000. L’eina detecta per la magnitud si és en segons o en mil·lisegons.
  2. Llegeix el resultat en el teu fus horari local, en UTC i en format ISO 8601.
  3. Per fer el camí invers, introdueix una data i una hora; l’eina retorna el valor epoch corresponent en segons i en mil·lisegons.
  4. Mira la marca de temps actual de la part superior, que s’actualitza en directe, quan necessitis «ara» com a valor epoch.

Què és una marca de temps Unix?

Una marca de temps Unix, també anomenada temps epoch o temps POSIX, és el nombre de segons transcorreguts des de l’època Unix: l‘1 de gener de 1970 a les 00:00:00 UTC. Per exemple, 1700000000 correspon al 14 de novembre de 2023 a les 22:13:20 UTC. Les dates anteriors a 1970 es representen amb nombres negatius.

Les marques de temps són populars entre els desenvolupadors perquè són un sol número que no depèn dels fusos horaris, de l’horari d’estiu ni dels formats de data. Comparar dos moments és una simple resta, i ordenar per temps és una simple ordenació numèrica. Les trobaràs en bases de dades, fitxers de registre, respostes d’API, reclamacions JWT com exp i iat, metadades de fitxers i planificadors de tipus cron.

Tingues en compte que el temps Unix ignora els segons intercalars: cada dia compta exactament 86.400 segons. Això manté l’aritmètica senzilla i és el motiu pel qual una marca de temps no és un recompte estricte de cada segon físic des de 1970.

Segons o mil·lisegons

La font de confusió més freqüent és la unitat. Els sistemes Unix tradicionals, PHP, el time.time() de Python i la majoria de bases de dades utilitzen segons, cosa que avui dona un número de 10 xifres. El Date.now() de JavaScript, el System.currentTimeMillis() de Java i moltes API JSON utilitzen mil·lisegons, cosa que dona un número de 13 xifres. Si interpretes mil·lisegons com a segons, acabes desenes de milers d’anys al futur; si interpretes segons com a mil·lisegons, acabes al gener de 1970. Aquesta eina mira la mida del número per triar automàticament la unitat correcta, i quan converteix una data mostra els dos valors perquè puguis copiar el que espera el teu sistema.

Hora local, UTC i ISO 8601

Una marca de temps identifica un instant precís, però aquest instant es mostra de manera diferent segons el fus horari. El resultat local utilitza el fus horari configurat al teu dispositiu, mentre que UTC és la referència universal que fan servir els servidors i els registres. ISO 8601, com 2023-11-14T22:13:20.000Z, és el format de text inequívoc recomanat per intercanviar dates entre sistemes; la Z final vol dir UTC.

El problema de l’any 2038

Molts sistemes antics emmagatzemen el temps Unix com un enter de 32 bits amb signe, el valor màxim del qual és 2.147.483.647. Aquest límit s’arriba el 19 de gener de 2038 a les 03:14:07 UTC. Un segon més tard, aquest comptador es desborda cap a un gran nombre negatiu i es llegeix com una data del desembre de 1901. Els sistemes operatius, les bases de dades i els llenguatges moderns han passat en gran part a valors de temps de 64 bits, que empenyen el límit milers de milions d’anys al futur, però els dispositius encastats, els formats de fitxer heretats i les columnes antigues de bases de dades encara poden veure’s afectats. El mateix JavaScript no s’hi veu afectat, perquè emmagatzema el temps en mil·lisegons en un nombre de coma flotant de 64 bits.

Privadesa

Totes les conversions es fan al teu navegador amb les seves funcions de data integrades. No s’envia cap marca de temps ni cap data a un servidor.

Preguntes freqüents

Com sé si la meva marca de temps és en segons o en mil·lisegons?

Compta les xifres. Una data actual té 10 xifres en segons i 13 xifres en mil·lisegons. L’eina aplica la mateixa lògica automàticament, segons la mida del número.

Per què l'hora local és diferent de l'UTC?

Totes dues descriuen el mateix instant. L’hora local aplica el desplaçament del fus horari del teu dispositiu i les regles de l’horari d’estiu, mentre que UTC no té desplaçament. Si comparteixes una hora amb gent d’altres llocs, UTC o ISO 8601 eviten malentesos.

Una marca de temps Unix pot ser negativa?

Sí. Els valors negatius representen moments anteriors a l‘1 de gener de 1970 UTC. Per exemple, -86400 és el 31 de desembre de 1969 a les 00:00:00 UTC.

Una marca de temps Unix conté un fus horari?

No. Una marca de temps sempre és relativa a UTC i no porta cap informació de fus horari. El fus horari només importa quan la mostres com una data i hora de calendari.

Es trencaran els meus sistemes el 2038?

Només si emmagatzemen el temps en un enter de 32 bits amb signe. Revisa les bases de dades antigues, el programari encastat i els formats de fitxer binaris. Tot el que utilitzi temps de 64 bits és segur en un futur previsible.