Todas as guías

Converter un timestamp Unix en data e unha data en timestamp

Publicada o · Actualizada o 2 min de lectura

Un timestamp Unix conta o tempo transcorrido desde o 1 de xaneiro de 1970 á medianoite en hora universal. Dúas preguntas deciden a data resultante: a unidade do número e o fuso horario no que le o resultado.

Un valor de referencia

Converter un timestamp Unix dá tres lecturas do mesmo instante. Para 1700000000, cun navegador configurado coa hora de París:

LecturaResultado
Data UTCTue, 14 Nov 2023 22:13:20 GMT
Data local14 de novembro de 2023 ás 23:13:20 UTC+1
ISO2023-11-14T22:13:20.000Z

A hora local segue o fuso horario do navegador: unha hora máis en París no inverno. O mesmo timestamp é un único instante, lido en dous fusos horarios.

A unidade recoñécese polo número de díxitos

O axuste por defecto recoñece a unidade pola lonxitude do número. Os tres valores seguintes designan o mesmo instante, coa precisión correspondente.

NúmeroDíxitosUnidade recoñecidaInstante obtido
170000000010Segundos14 nov. 2023, 22:13:20 UTC
170000000000013Milisegundos14 nov. 2023, 22:13:20 UTC
170000000012345616Microsegundos14 nov. 2023, 22:13:20,123 UTC

A regra: ata 11 díxitos, segundos; de 12 a 14, milisegundos; 15 e 16, microsegundos. O axuste «milisegundos» forza esa unidade.

A trampa da regra

Como a unidade se deduce da lonxitude, un valor ambiguo lese dun só xeito: 10000000000 (11 díxitos) dá o 20 de novembro de 2286, e 100000000000 (12 díxitos) dá o 3 de marzo de 1973. Un timestamp en milisegundos anterior a marzo de 1973 ten 11 díxitos ou menos, e leríase como segundos: force entón o axuste «milisegundos».

Valores anteriores a 1970 e o límite de 2038

Un número negativo designa un instante anterior a 1970: −1 dá o 31 de decembro de 1969 ás 23:59:59 UTC, e 0 dá o 1 de xaneiro de 1970 á medianoite.

O número 2147483647 é o maior que cabe nun enteiro de 32 bits con signo: dá o 19 de xaneiro de 2038 ás 03:14:07 UTC. O número seguinte, 2147483648, dá as 03:14:08: a ferramenta continúa sen límite, pero un sistema que almacena a hora en 32 bits non pode.

Converter unha data en timestamp

Introduza unha data en lugar dun número: a ferramenta dá o timestamp en segundos e en milisegundos.

EntradaTimestamp en segundosLectura
2026-01-011767225600Medianoite en hora universal, sen fuso horario indicado
2026-01-01T10:30:00+01:00176725980010:30 en París, é dicir, 09:30 en hora universal
2024-02-291709164800Ano bisesto aceptado

Unha data sen fuso horario lese en hora universal, non en hora local: a ferramenta indícao no resultado. Unha data que non existe, como o 30 de febreiro de 2026, rexéitase cunha mensaxe.

Erros frecuentes

  • Ler milisegundos como segundos: a data cae miles de anos demasiado lonxe.
  • Esquecer o fuso horario: unha data lida como local e enviada despois como universal desprázase unha ou varias horas.
  • Escribir unha data sen fuso horario pensando na hora local, cando se vai ler en UTC.

Para contar os días entre dúas datas, vexa Contar os días entre dúas datas.

Comprobar unha conversión

  1. Reláa a liña UTC, que non depende do aparello.
  2. Comprobe a unidade anunciada na primeira liña do resultado.
  3. Volva converter a data resultante: debería recuperar o número de partida.

Converter un timestamp Unix