¿Qué Es el Tiempo Epoch (Tiempo Unix)?
El tiempo epoch, también llamado tiempo Unix o timestamp Unix (marca de tiempo Unix), es el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC, un instante conocido como el epoch de Unix. Por ejemplo, 1700000000 es el 14 de noviembre de 2023 a las 22:13:20 UTC.
Los sistemas informáticos guardan el tiempo así porque un solo número es fácil de comparar, ordenar y enviar entre sistemas, y representa el mismo instante en todo el mundo. Las zonas horarias solo entran en juego cuando se convierte en una fecha para que la lean las personas. El tiempo Unix ignora los segundos intercalares: cada día cuenta exactamente 86.400 segundos.

¿Segundos, Milisegundos, Microsegundos o Nanosegundos?
Los timestamps tienen distintas precisiones. El conversor detecta la unidad por el número de dígitos, y puede cambiarla con el menú de unidad:
El timestamp Unix clásico, usado por Linux, PHP, time.time() de Python (como float), los claims exp de JWT y la mayoría de las API. Ejemplo: 1700000000.
Lo usan JavaScript (Date.now()), Java y muchas bases de datos y logs. Ejemplo: 1700000000000.
Lo usan UnixMicro() de Go y muchos logs y trazas de alta resolución. Ejemplo: 1700000000000000.
Lo usan UnixNano() de Go, InfluxDB y los sistemas de monitorización. Ejemplo: 1700000000000000000.
Advertisement
Cómo Convertir un Timestamp Unix a Fecha
Introdúzcalo en la pestaña Timestamp a Fecha. Se admiten comas, espacios y una parte decimal (como 1700000000.5), y los valores negativos dan fechas anteriores a 1970.
La etiqueta indica si se leyó como segundos, milisegundos, microsegundos o nanosegundos. Elija usted la unidad si la detección no es correcta.
Obtiene la fecha en UTC y en su zona horaria, ISO 8601, RFC 2822, cuánto tiempo ha pasado y el mismo instante en las cuatro unidades.
Elija cualquier zona horaria de la lista para ver el mismo instante allí, por ejemplo para saber cuándo ocurrió una entrada de log para un compañero en el extranjero.
Cómo Convertir una Fecha a Timestamp Unix
Abra la pestaña Fecha a Timestamp, elija una fecha y una hora, y seleccione la zona horaria a la que pertenecen. Obtendrá el tiempo epoch en segundos y milisegundos, además de la forma ISO 8601 en UTC.
El mismo panel muestra el primer y el último segundo de ese día, mes y año en la zona horaria elegida. Es útil para consultas de bases de datos como «todos los pedidos realizados en octubre en hora de Nueva York», donde necesita los timestamps de inicio y fin del periodo.
Advertisement
Zonas Horarias y Horario de Verano
Un timestamp Unix no tiene zona horaria: siempre cuenta desde la medianoche UTC del 1 de enero de 1970. El mismo timestamp simplemente se muestra como horas de reloj distintas en lugares distintos, como las 22:13 en Londres y las 03:43 de la madrugada siguiente en la India para 1700000000.
Al convertir una fecha en timestamp es cuando importan las zonas horarias. Algunas horas ocurren dos veces cuando se atrasan los relojes, y otras nunca ocurren cuando se adelantan. La noche en que los relojes de EE. UU. se adelantan, las 02:30 no existen en Nueva York. Esta herramienta resuelve ambos casos como lo hace Python: una hora que no existe se adelanta lo que dura el salto, y una hora que ocurre dos veces usa la primera aparición.
El Problema del Año 2038
Los sistemas antiguos guardan el tiempo Unix en un entero de 32 bits con signo, cuyo máximo es 2147483647: el 19 de enero de 2038 a las 03:14:07 UTC. Un segundo después el número se desborda a un valor negativo y esos sistemas interpretan la fecha como el 13 de diciembre de 1901.
La mayoría de los sistemas operativos y lenguajes modernos usan tiempo de 64 bits y no se ven afectados, pero los dispositivos embebidos, los formatos de archivo antiguos, parte del código heredado y el tipo de columna TIMESTAMP de MySQL (que termina el 2038-01-19 03:14:07 UTC) todavía sí. El conversor muestra un aviso para cualquier timestamp fuera del rango de 32 bits, para que detecte valores que podrían romper software antiguo.
Advertisement
Obtener el Tiempo Epoch Actual en Código
Todos los lenguajes y shells pueden leer y convertir tiempo Unix:
Math.floor(Date.now() / 1000) // segundos
Date.now() // milisegundos
new Date(1700000000 * 1000).toISOString() // '2023-11-14T22:13:20.000Z'import time, datetime
int(time.time()) # segundos
datetime.datetime.fromtimestamp(1700000000, datetime.timezone.utc)
# 2023-11-14 22:13:20+00:00date +%s # segundos epoch actuales
date -u -d @1700000000 # Linux (GNU date)
date -u -r 1700000000 # macOS (BSD date)-- PostgreSQL
SELECT extract(epoch FROM now());
SELECT to_timestamp(1700000000);
-- MySQL
SELECT UNIX_TIMESTAMP();
SELECT FROM_UNIXTIME(1700000000);time(); // PHP
date('c', 1700000000);
time.Now().Unix() // Go
Instant.now().getEpochSecond() // Java=(A1/86400)+DATE(1970,1,1) // segundos epoch en A1 a fecha UTC
=(B1-DATE(1970,1,1))*86400 // fecha UTC en B1 a segundos epochTimestamps Unix Destacados
0: 1 de enero de 1970, 00:00:00 UTC, el epoch de Unix.1000000000: 9 de septiembre de 2001, 01:46:40 UTC, el primer timestamp de 10 dígitos.1234567890: 13 de febrero de 2009, 23:31:30 UTC.1700000000: 14 de noviembre de 2023, 22:13:20 UTC.1800000000: 15 de enero de 2027, 08:00:00 UTC.2000000000: 18 de mayo de 2033, 03:33:20 UTC.2147483647: 19 de enero de 2038, 03:14:07 UTC, el límite de 32 bits.4294967295: 7 de febrero de 2106, 06:28:15 UTC, el límite de 32 bits sin signo.
Advertisement
Más Herramientas para Desarrolladores
Otras herramientas gratuitas para desarrolladores y administradores de sistemas, todas en su navegador:
v4 aleatorios, v7 ordenados por tiempo y GUID, en lote.
Texto, imágenes y archivos a Base64 y viceversa.
Lea las fechas de validez, los SAN y la clave de un certificado.
Subredes IPv4, rangos CIDR y número de hosts.