Publicado el 10/03/2026 28 visitas KW: convertir unix timestamp a fecha javascript zona horaria

Cómo convertir Unix Timestamp a fecha en JavaScript (con zona horaria y UTC)

Convierte Unix Timestamp a Fecha en JavaScript (con Zona Horaria) ¿Necesitas mostrar fechas precisas en JavaScript a partir de un Unix timestamp, considera

Convierte Unix Timestamp a Fecha en JavaScript (con Zona Horaria)

¿Necesitas mostrar fechas precisas en JavaScript a partir de un Unix timestamp, considerando la zona horaria correcta? Este artículo te guiará paso a paso para convertir timestamps a fechas legibles, manejar zonas horarias y evitar errores comunes. Aprenderás a transformar esos números en información valiosa para tus usuarios, sin importar dónde se encuentren.

Paso a Paso: Convirtiendo Unix Timestamp a Fecha en JavaScript

Convertir un Unix timestamp a una fecha en JavaScript es sencillo si sigues los pasos correctos. Aquí tienes una guía detallada:

1. Entendiendo el Unix Timestamp

El Unix timestamp, también conocido como "epoch time", es el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC. Es una forma universal de representar un momento en el tiempo, independientemente de la zona horaria.

2. Diferencia entre Segundos y Milisegundos

JavaScript utiliza milisegundos para representar las fechas internamente. Por lo tanto, si tu timestamp está en segundos (lo más común al recibir datos de APIs o bases de datos), debes multiplicarlo por 1000 antes de usarlo.


const timestampEnSegundos = 1678886400; // Ejemplo: 15 de marzo de 2023
const timestampEnMilisegundos = timestampEnSegundos * 1000;

3. Creando un Objeto `Date`

Usa el timestamp en milisegundos para crear un objeto `Date` en JavaScript. Este objeto representa la fecha y hora correspondientes al timestamp.


const timestampEnSegundos = 1678886400;
const timestampEnMilisegundos = timestampEnSegundos * 1000;
const fecha = new Date(timestampEnMilisegundos);
console.log(fecha); // Output: Tue Mar 15 2023 00:00:00 GMT+0000 (Coordinated Universal Time)

Observa que la salida por defecto del objeto `Date` en la consola muestra la fecha en la zona horaria del entorno donde se ejecuta el código.

4. Formateando la Fecha con `Intl.DateTimeFormat` (Importante para Zonas Horarias)

Para mostrar la fecha en una zona horaria específica y con el formato deseado, utiliza el objeto `Intl.DateTimeFormat`. Esta es la clave para manejar correctamente las zonas horarias.


const timestampEnSegundos = 1678886400;
const timestampEnMilisegundos = timestampEnSegundos * 1000;
const fecha = new Date(timestampEnMilisegundos);

const opcionesDeFormato = {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  timeZone: 'Europe/Madrid' // Especifica la zona horaria deseada
};

const formato = new Intl.DateTimeFormat('es-ES', opcionesDeFormato);
const fechaFormateada = formato.format(fecha);

console.log(fechaFormateada); // Output: 15/03/2023 01:00:00 (si el huso horario es UTC+1)

En este ejemplo:

  • `'es-ES'` especifica el idioma y la región para el formato (español de España).
  • `opcionesDeFormato` define el formato de fecha y hora.
  • `timeZone` es el parámetro crucial para especificar la zona horaria.

5. Formateando con UTC (Tiempo Universal Coordinado)

Si necesitas mostrar la fecha en UTC, puedes usar `toISOString()`:


const timestampEnSegundos = 1678886400;
const timestampEnMilisegundos = timestampEnSegundos * 1000;
const fecha = new Date(timestampEnMilisegundos);
const fechaUTC = fecha.toISOString();

console.log(fechaUTC); // Output: 2023-03-15T00:00:00.000Z

Checklist para Convertir Unix Timestamp a Fecha en JavaScript

Utiliza esta lista de verificación para asegurarte de que sigues todos los pasos correctamente:

  • [ ] Obtén el Unix timestamp (en segundos).
  • [ ] Verifica si el timestamp está en segundos o milisegundos. Si está en segundos, multiplica por 1000.
  • [ ] Crea un objeto `Date` usando el timestamp en milisegundos: `new Date(timestampEnMilisegundos)`.
  • [ ] Si necesitas mostrar la fecha en una zona horaria específica, usa `Intl.DateTimeFormat`.
  • [ ] Configura las opciones de formato en `Intl.DateTimeFormat` (idioma, formato de fecha y hora, zona horaria).
  • [ ] Aplica el formato a tu objeto `Date`.
  • [ ] Si necesitas UTC, usa `toISOString()`.

Errores Comunes al Convertir Timestamp y Cómo Solucionarlos

Evita estos errores comunes para asegurar la precisión de tus conversiones:

1. Confundir Segundos con Milisegundos

Error: Usar directamente el timestamp en segundos sin multiplicarlo por 1000. Esto resultará en una fecha incorrecta, generalmente mostrando el 1 de enero de 1970.

Solución: Siempre verifica si el timestamp está en segundos o milisegundos. Multiplica por 1000 si está en segundos.


const timestampEnSegundos = 1678886400;
const timestampEnMilisegundos = timestampEnSegundos * 1000;
const fecha = new Date(timestampEnMilisegundos); // Correcto

2. No Considerar la Zona Horaria

Error: Asumir que el objeto `Date` por defecto mostrará la fecha en la zona horaria deseada. JavaScript utiliza la zona horaria del entorno donde se ejecuta el código.

Solución: Utiliza `Intl.DateTimeFormat` para especificar la zona horaria y el formato de fecha y hora.

3. Olvidar el Formato Correcto

Error: No formatear la fecha para que sea legible. El objeto `Date` por sí solo no muestra la fecha en un formato amigable para el usuario.

Solución: Usa `Intl.DateTimeFormat` para formatear la fecha y hora de la manera que necesites.

4. Manejo Incorrecto de UTC

Error: Mostrar la fecha directamente sin considerar UTC cuando se requiere.

Solución: Usa `toISOString()` para obtener la fecha en formato UTC.

Preguntas Frecuentes (FAQ)

¿Cómo puedo convertir una fecha ISO 8601 a Unix timestamp en JavaScript?

Puedes usar `Date.parse()` para convertir la fecha ISO 8601 a milisegundos y luego dividir por 1000 para obtener el timestamp en segundos.


const fechaISO = "2023-03-15T10:30:00Z";
const milisegundos = Date.parse(fechaISO);
const segundos = Math.floor(milisegundos / 1000);
console.log(segundos); // Output: 1678895400

¿Cómo puedo obtener el Unix timestamp actual en JavaScript?

Puedes usar `Date.now()` para obtener el timestamp actual en milisegundos y luego dividir por 1000 para obtener los segundos, o usar `Math.floor(Date.now() / 1000)` para los segundos.


const timestampEnMilisegundos = Date.now();
const timestampEnSegundos = Math.floor(timestampEnMilisegundos / 1000);
console.log(timestampEnSegundos);

¿Por qué mi fecha se muestra incorrectamente en diferentes zonas horarias?

Esto ocurre porque el objeto `Date` en JavaScript usa la zona horaria del navegador o entorno. Necesitas usar `Intl.DateTimeFormat` para especificar la zona horaria que deseas.

¿Cómo puedo mostrar la hora en formato de 12 horas (AM/PM)?

Debes usar las opciones de formato de `Intl.DateTimeFormat` para especificar el formato de hora. Por ejemplo:


const fecha = new Date();
const opciones = {
  hour: 'numeric',
  minute: 'numeric',
  hour12: true // Para formato de 12 horas
};
const formato = new Intl.DateTimeFormat('en-US', opciones);
const fechaFormateada = formato.format(fecha);
console.log(fechaFormateada);

Recomendación Final

Para la mayoría de los desarrolladores frontend y backend, la correcta conversión y formateo de fechas es fundamental. Si estás trabajando con APIs que devuelven timestamps, asegúrate de:

  • Usar `Intl.DateTimeFormat`: Prioriza siempre el uso de `Intl.DateTimeFormat` para mostrar fechas en la zona horaria correcta y con el formato adecuado para el usuario. Es la herramienta más flexible y precisa.
  • Verificar la unidad: Siempre verifica si el timestamp recibido está en segundos o milisegundos antes de crear el objeto `Date`.
  • Considerar UTC: Si necesitas almacenar o mostrar fechas de forma consistente entre diferentes sistemas, utiliza UTC y formatea con `toISOString()`.

Dominar estas técnicas te permitirá crear aplicaciones más robustas y fáciles de usar, evitando errores comunes relacionados con el manejo del tiempo.

Autor: Equipo Tecno Inteligente
Especialistas en automatización, desarrollo web y herramientas digitales.

Artículos recomendados