Toolyard

Qué es un timestamp Unix

Qué es

Un timestamp Unix es el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970, la llamada época Unix. Es el mismo número en todo el mundo en el mismo momento, por eso lo usan las API, los registros y las bases de datos. Por ejemplo, 1700000000 es el 14 de noviembre de 2023 a las 22:13:20 UTC.

¿Segundos o milisegundos?

Un timestamp en segundos tiene hoy 10 dígitos. JavaScript, Java y muchas API usan milisegundos, que tienen 13. Si una fecha sale en 1970 o miles de años en el futuro, la unidad probablemente está mal.

Conviértelo online

Pégalo en el Conversor de timestamp Unix. Detecta segundos o milisegundos y muestra la fecha en UTC y en tu zona horaria.

En código y hojas de cálculo

  • JavaScript: new Date(1700000000 * 1000)
  • Python: datetime.fromtimestamp(1700000000, tz=timezone.utc)
  • Excel en español: =A1/86400+FECHA(1970;1;1) y da formato de fecha a la celda. El resultado está en UTC.
  • Terminal de Mac o Linux, hora actual: date +%s

El problema del año 2038

Los sistemas que guardan el timestamp como un número de 32 bits con signo se quedan sin margen el 19 de enero de 2038 a las 03:14:07 UTC. Los sistemas modernos usan 64 bits, que duran miles de millones de años.

Ejemplos prácticos

  • 0 es el 1 de enero de 1970, 00:00:00 UTC.
  • 86400 es exactamente un día después, el 2 de enero de 1970.
  • -86400 es un día antes, el 31 de diciembre de 1969. Las marcas negativas son fechas anteriores a 1970.
  • 2000000000 es el 18 de mayo de 2033, 03:33:20 UTC.

Errores frecuentes

  • Pensar que la marca de tiempo tiene zona horaria. No la tiene. 1700000000 es el mismo instante en todas partes; solo cambia cómo se muestra según la zona horaria.
  • Crear una marca de tiempo a partir de la hora local como si fuera UTC. El resultado se desvía en tu diferencia con UTC, a menudo justo unas horas. Comprueba una fecha conocida después de convertir.
  • Los meses en JavaScript. new Date(2026, 0, 15) es el 15 de enero: los meses se cuentan desde 0.
  • Los segundos intercalares. El tiempo Unix trata cada día como exactamente 86.400 segundos e ignora los segundos intercalares, así que no cuenta cada segundo transcurrido.

Herramientas de esta guía

Más guías