Tiempo Unix a fecha: convierte un timestamp Unix en hora legible

Una guía práctica para convertir el tiempo Unix a formatos de fecha: UTC, zona horaria local, ISO 8601, datetime de base de datos y salida legible. Cubre timestamp Unix a fecha, tiempo Linux a fecha y los errores comunes de segundos frente a milisegundos.

Qué significa convertir Unix time a fecha

El tiempo Unix es un número que cuenta el tiempo transcurrido desde el 1 de enero de 1970 a las 00:00:00 UTC. Convertir Unix time a fecha significa transformar ese número en una fecha de calendario, una hora y una visualización con zona horaria. El timestamp en sí es neutral respecto a la zona horaria; UTC o la hora local solo afectan a cómo se muestra el instante a las personas.

La regla rápida de conversión

Primero identifica la unidad. Un timestamp Unix moderno de 10 dígitos suele estar en segundos. Uno moderno de 13 dígitos suele estar en milisegundos. JavaScript Date espera milisegundos, mientras que Linux, Python, PHP, Go y muchas funciones de bases de datos suelen trabajar con segundos.

  • Unix seconds to JavaScript Date: new Date(seconds * 1000)
  • Unix milliseconds to JavaScript Date: new Date(milliseconds)
  • Linux command: date -u -d @1700000000
  • Python UTC datetime: datetime.fromtimestamp(seconds, tz=timezone.utc)
  • PostgreSQL: SELECT to_timestamp(1700000000)

Ejemplos de timestamp Unix a fecha

Los ejemplos son la forma más rápida de comprobar si un valor está en segundos, milisegundos u otra unidad. Si el año convertido está cerca de 1970, probablemente pasaste segundos a una API que esperaba milisegundos. Si el año está muy en el futuro, probablemente pasaste milisegundos a una API que esperaba segundos.

  • 0 segundos desde el epoch = 1970-01-01 00:00:00 UTC
  • 1700000000 segundos desde el epoch = 2023-11-14 22:13:20 UTC
  • 1700000000000 milisegundos desde el epoch = 2023-11-14 22:13:20 UTC
  • -86400 segundos desde el epoch = 1969-12-31 00:00:00 UTC
  • 1767225600 segundos desde el epoch = 2026-01-01 00:00:00 UTC

Fecha UTC vs fecha local

Un timestamp Unix representa un instante exacto. UTC es la referencia más segura para logs, APIs y depuración. La hora local es útil para interfaces de usuario, calendarios e informes. El mismo timestamp Unix puede mostrarse como fechas distintas en Nueva York, Londres, Shanghái y Tokio, sobre todo cerca de la medianoche UTC.

  • Usa UTC al comparar eventos entre servidores o regiones
  • Usa la zona horaria IANA del usuario al mostrar fechas en una app
  • Usa ISO 8601 con Z para una salida UTC legible por máquinas
  • Usa un conversor de zonas horarias cuando importe el día de calendario local

Preguntas frecuentes sobre Unix time a fecha

¿Cómo convierto Unix time a una fecha?
Identifica si el valor está en segundos o milisegundos y conviértelo con un conversor de timestamps o una API del lenguaje. En JavaScript, multiplica los segundos por 1000 antes de pasar el valor a new Date().
¿Es el tiempo de Linux lo mismo que el tiempo Unix?
Para la conversión normal de timestamps, sí. El tiempo de Linux es tiempo Unix: segundos desde 1970-01-01 00:00:00 UTC.
¿Por qué mi timestamp Unix se convierte en 1970?
Eso suele significar que un timestamp en segundos se trató como milisegundos. Multiplica el valor de 10 dígitos por 1000 antes de convertir con JavaScript Date.
¿Cómo convierto Unix time a una fecha en Excel?
Excel no tiene epoch Unix, así que divide el valor en segundos entre 86400 y suma el serial de fecha de 1970: =A1/86400 + DATE(1970,1,1), y luego formatea la celda como fecha. Para milisegundos, divide entre 86400000.