Cómo convertir el tiempo epoch en una fecha legible

Una guía práctica para convertir timestamps Unix en fechas legibles en los lenguajes de programación más populares, con herramientas en línea y ejemplos que tienen en cuenta la zona horaria.

¿Qué es el tiempo epoch?

El tiempo epoch (también llamado tiempo Unix o tiempo POSIX) es el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970. Es el estándar universal para representar instantes en informática. Todos los lenguajes y sistemas operativos lo admiten de forma nativa, lo que lo convierte en el formato más fiable para almacenar e intercambiar timestamps entre sistemas.

Paso 1 — Identifica el formato de tu timestamp

Antes de convertir, determina si tu timestamp está en segundos o en milisegundos:

  • 10 dígitos (p. ej. 1700000000) → segundos desde el epoch Unix
  • 13 dígitos (p. ej. 1700000000000) → milisegundos desde el epoch Unix
  • Si tienes dudas, divide entre 1000 y comprueba si el año parece razonable
  • También puedes pegar el timestamp en el conversor de arriba y lo detectará automáticamente

Convertir epoch a fecha en JavaScript

El constructor Date de JavaScript acepta milisegundos. Si tu timestamp está en segundos, multiplícalo primero por 1000.

  • new Date(1700000000 * 1000).toISOString() → '2023-11-15T06:13:20.000Z'
  • new Date(1700000000 * 1000).toUTCString() → 'Wed, 15 Nov 2023 06:13:20 GMT'
  • new Date(1700000000 * 1000).toLocaleString('en-US', { timeZone: 'America/New_York' })
  • new Date(1700000000000).getTime() → 1700000000000 (milliseconds back)

Convertir epoch a fecha en Python

El módulo datetime de Python ofrece fromtimestamp() para hora local y utcfromtimestamp() para UTC. Para un manejo explícito de zona horaria usa el parámetro timezone.utc.

  • datetime.datetime.fromtimestamp(1700000000) → local timezone
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc) → UTC (Python 3.2+)
  • datetime.datetime.fromtimestamp(1700000000).strftime('%Y-%m-%d %H:%M:%S') → formatted string
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc).isoformat() → ISO 8601

Convertir epoch a fecha en PHP

Las funciones date() y la clase DateTime de PHP admiten timestamps Unix directamente.

  • date('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (server's local timezone)
  • gmdate('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (always UTC)
  • $dt = new DateTime(); $dt->setTimestamp(1700000000); $dt->format('c') → ISO 8601

Convertir epoch a fecha en Go

El paquete time de Go convierte timestamps Unix con time.Unix(seconds, nanoseconds).

  • time.Unix(1700000000, 0) → time.Time in local timezone
  • time.Unix(1700000000, 0).UTC() → force UTC
  • time.Unix(1700000000, 0).Format(time.RFC3339) → '2023-11-15T06:13:20Z'
  • time.Unix(1700000000, 0).Format('2006-01-02 15:04:05') → custom layout

Errores comunes al convertir tiempo epoch

Los errores más frecuentes al trabajar con timestamps Unix:

  • Olvidar multiplicar los segundos por 1000 en JavaScript — new Date(1700000000) da el año 1970, no 2023
  • Usar milisegundos de JavaScript directamente como segundos en un lenguaje de servidor
  • No especificar una zona horaria y depender de la del servidor, que varía entre entornos
  • Almacenar los timestamps como cadenas en vez de enteros, lo que rompe las comparaciones y la aritmética numéricas

Preguntas frecuentes sobre epoch a fecha

¿Cómo convierto tiempo epoch a una fecha?
Identifica si el valor está en segundos (10 dígitos) o milisegundos (13 dígitos) y conviértelo con la API de fechas de tu lenguaje: new Date(seconds * 1000) en JavaScript, datetime.fromtimestamp(seconds, tz=timezone.utc) en Python, o pégalo en el conversor de arriba.
¿Por qué mi timestamp epoch se convierte en 1970?
Pasaste un valor en segundos a una función que espera milisegundos, casi siempre el new Date() de JavaScript. Multiplica primero el valor en segundos de 10 dígitos por 1000.
¿Debo convertir el tiempo epoch a UTC o a hora local?
Usa UTC para logs, APIs y comparaciones entre servidores, y convierte a la zona horaria local del usuario solo para mostrarlo. El valor epoch es neutral respecto a la zona horaria.