Ayuda técnica

De Unix Timestamp a fecha: segundos, milisegundos y UTC explicados

Convierte un Unix timestamp a una fecha. Mira segundos frente a milisegundos, UTC frente a hora local, ISO 8601 y cómo volver de una fecha al tiempo epoch.

Respuesta rápida

Un Unix timestamp representa el tiempo respecto al Unix epoch: 1970-01-01 00:00:00 UTC. Suele guardarse como segundos desde el epoch o como milisegundos desde el epoch.

Para convertir bien, primero hay que saber la unidad. 1720000000 segundos son 2024-07-03 09:46:40 UTC. 1720000000000 milisegundos son el mismo instante.

El timestamp identifica un instante. UTC, la hora local o una zona IANA solo cambian cómo se muestra ese instante.

Esta es una guía de conversión: timestamp a fecha, fecha a timestamp, UTC frente a local, e ISO 8601. Si un valor se convierte de golpe en una fecha de 1970, suele ser un desajuste de segundos/milisegundos: ver Unix Timestamp en segundos vs milisegundos: por qué la fecha sale 1970.

¿Qué es un Unix Timestamp?

Unix timestamp, Unix time y epoch time suelen significar el tiempo transcurrido desde 1970-01-01 00:00:00 UTC. El número no es una cadena de fecha formateada con etiqueta de zona horaria. El mismo instante puede mostrarse con horas distintas en UTC, Nueva York, Tokio o Seúl. Los Unix timestamps no son siempre segundos: en la práctica los milisegundos son habituales.

¿Qué es el Unix Epoch?

El Unix epoch es 1970-01-01 00:00:00 UTC. El timestamp 0 es ese instante. Un timestamp positivo es posterior al epoch. Algunos sistemas admiten un timestamp negativo para un momento anterior al epoch, pero el soporte del lenguaje y del rango de fechas varía.

¿Mi timestamp está en segundos o en milisegundos?

1720000000 son segundos; 1720000000000 son milisegundos; son el mismo instante. Una pista práctica: unos 10 dígitos suelen ser segundos; unos 13, milisegundos. El recuento de dígitos es solo una heurística. Fechas pasadas o futuras, otras unidades o un epoch personalizado pueden verse distintos. Convertidor de fecha y hora puede convertir con segundos, milisegundos o automático (≤10 dígitos como segundos, ≥13 como milisegundos): elige la unidad cuando la conozcas.

¿Por qué la unidad incorrecta produce la fecha incorrecta?

JavaScript Date espera milisegundos. Pasar 1720000000 como si fueran milisegundos da 1970-01-20 21:46:40 UTC. Tratar milisegundos como segundos, o al revés, cae en una fecha muy distinta. Para el diagnóstico de 1970, ver Unix Timestamp en segundos vs milisegundos: por qué la fecha sale 1970.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

Cómo convertir un Unix timestamp en segundos

Multiplica los segundos por 1000 para obtener milisegundos. JavaScript Date se basa en milisegundos, así que usa new Date(timestamp * 1000).

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Cómo convertir un timestamp en milisegundos

Pasa los milisegundos a Date directamente. No vuelvas a multiplicar por 1000 un timestamp que ya está en milisegundos.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

¿Por qué el mismo timestamp muestra una hora distinta?

Un Unix timestamp es un solo instante. Mostrarlo en UTC, en hora local o en una zona IANA elegida cambia la hora del reloj. Para 1720000000000, UTC es 2024-07-03 09:46:40. America/New_York en esa fecha es 2024-07-03 05:46:40 (EDT). Asia/Seoul es 2024-07-03 18:46:40 (UTC+9). Esos valores de Nueva York y Seúl salen de Intl, no de un eslogan de desfase fijo.

¿Un Unix timestamp contiene una zona horaria?

No. No guarda America/New_York ni Asia/Seoul. El timestamp identifica un instante. La zona horaria se aplica al formatear ese instante como fecha y hora legibles. El epoch se define respecto a UTC; el número en sí no es «un campo de zona horaria UTC».

Unix Timestamp frente a ISO 8601

1720000000 y 2024-07-03T09:46:40Z pueden representar el mismo instante. Unix es un valor numérico de tiempo transcurrido. ISO 8601 es una cadena de fecha y hora legible y puede terminar en Z (UTC) o en un desfase numérico. Z significa UTC; a veces se llama Zulu. No son el mismo formato.

¿Cómo se obtiene el Unix timestamp actual?

En JavaScript, Date.now() son milisegundos. Math.floor(Date.now() / 1000) son segundos. No dejes un «ahora» fijo en un artículo: se mueve.

Date.now();
Math.floor(Date.now() / 1000);

¿Se puede convertir una fecha de vuelta a Unix timestamp?

Sí. Desde una cadena ISO UTC explícita, getTime() devuelve milisegundos; divide por 1000 y redondea hacia abajo para segundos.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

Cuidado con los formatos de fecha ambiguos

03/07/2024 puede ser el 7 de marzo o el 3 de julio según la región. Prefiere una fecha y hora al estilo ISO con zona horaria o desfase. Convertidor de fecha y hora rechaza fechas numéricas ambiguas como 01/02/2026 y pide un selector de fecha o un valor al estilo ISO.

¿Y el horario de verano?

Un Unix timestamp no guarda una marca de horario de verano. La vista local aplica las reglas de la zona. America/New_York usa desfases distintos en invierno y en verano, así que «Nueva York es UTC-5» no siempre es cierto.

¿Los Unix timestamps incluyen segundos intercalares?

El tiempo POSIX/Unix típico no cuenta los segundos intercalares como segundos SI extra en una escala continua. Las plataformas pueden diferir. En una conversión cotidiana puedes ignorar este detalle.

Errores habituales al convertir un Unix timestamp

Estas confusiones producen la fecha incorrecta o la hora incorrecta en el reloj:

Segundos tratados como milisegundos
Un valor moderno en segundos acaba cerca de 1970 en JavaScript Date.

Milisegundos tratados como segundos
La fecha salta muy lejos en el futuro.

Tratar 10 o 13 dígitos como una ley
El recuento de dígitos es una pista, no una garantía.

Confundir UTC con la hora local
El instante es el mismo; el reloj mostrado puede diferir.

Asumir que hay una zona horaria dentro del número
Los nombres IANA se aplican al mostrar, no se guardan en el timestamp.

Fechas ambiguas, eslóganes de horario de verano o un ×1000 de más
Usa entrada al estilo ISO. No vuelvas a multiplicar un timestamp en milisegundos.

Ejemplos UTC verificados

Estas horas UTC se calcularon, no se adivinaron:

Entrada Unidad UTC
0 segundos 1970-01-01 00:00:00
1720000000 segundos 2024-07-03 09:46:40
1720000000000 milisegundos 2024-07-03 09:46:40
1720000000 milisegundos 1970-01-20 21:46:40

Una guía simple para decidir la conversión

Si la fuente nombra la unidad, úsala. Si no, el recuento de dígitos es una pista: luego comprueba que la fecha parezca plausible. Convierte segundos a milisegundos cuando la API necesite ms. Elige UTC, local o una zona IANA para mostrar. ISO 8601 sirve para guardar e intercambiar.

  • Tienes un Unix timestamp
  • ¿Unidad indicada? Úsala; si no, mira la magnitud
  • ¿Segundos? ×1000 si la API necesita milisegundos
  • ¿Milisegundos? Úsalos tal cual en una API basada en ms
  • Muestra como UTC, local o una zona IANA
  • ¿Necesitas una cadena? ISO 8601 puede encajar
El número es un instante. El formato elige la hora del reloj.
Un timestamp es un instante, no un formato de visualización

El timestamp identifica un punto en el tiempo. UTC, la hora local o una zona horaria solo deciden cómo se muestra ese instante a una persona.

Convierte Unix timestamps en tu navegador

NEXNARA Convertidor de fecha y hora convierte segundos y milisegundos Unix, muestra UTC, hora local e ISO 8601, y convierte entre zonas horarias IANA.

El modo Unix admite segundos, milisegundos, unidad automática, hora actual y fecha a timestamp. El modo de zona horaria busca nombres IANA, usa la zona del navegador y aplica desfases Intl con horario de verano. El modo de formato tiene salida legible según región, visualización 12/24 y un filtro de fechas ambiguas. La diferencia de fechas es un modo aparte.

La conversión usa las API Date e Intl del navegador. Se rechazan los valores que Date no puede representar. La unidad automática no adivina valores de 11–12 dígitos; elige segundos o milisegundos.

La conversión de fechas y timestamps ocurre en tu navegador. Las entradas no se envían a un servidor de NEXNARA para convertirlas. Los anuncios y otras funciones del sitio sí usan la red.

Pega un timestamp en Convertidor de fecha y hora y compara UTC, hora local e ISO 8601 antes de elegir la unidad.

FAQ

¿Cómo convierto un Unix timestamp a una fecha?

Conoce la unidad. En JavaScript, para segundos usa new Date(n * 1000). Para milisegundos, new Date(n). Luego formatea como UTC, local o una zona.

¿El Unix timestamp está en segundos o en milisegundos?

Puede ser cualquiera. Unos 10 dígitos suelen ser segundos y unos 13 milisegundos, pero es una heurística, no una regla.

¿Por qué mi timestamp muestra 1970?

Suele ser un valor en segundos leído como milisegundos. Ver Unix Timestamp en segundos vs milisegundos: por qué la fecha sale 1970.

¿El Unix timestamp es siempre UTC?

El epoch se define respecto a UTC, y el número identifica un instante. La zona horaria de visualización es aparte. No es «un campo de zona horaria UTC» almacenado.

¿Un Unix timestamp contiene una zona horaria?

No. No lleva un identificador IANA. La zona horaria se aplica al formatear el instante.

¿Cómo convierto una fecha a Unix timestamp?

Desde una cadena ISO UTC, date.getTime() son milisegundos; Math.floor(date.getTime() / 1000) son segundos.