Conversor de marcas de tiempo Unix
Convierte entre marcas de tiempo Unix y fechas.
Acerca de esta herramienta
Convierte marcas de tiempo Unix en segundos, milisegundos o microsegundos a ISO 8601, hora local y tiempo relativo, o convierte cualquier cadena de fecha de nuevo en una marca de tiempo.
Cómo se usa
- Pega una marca de tiempo Unix en segundos, milisegundos o microsegundos, o cualquier cadena de fecha.
- La unidad se detecta según el número de dígitos.
- Consulta la fecha en ISO 8601, en tu hora local, en RFC 2822 y en forma relativa, y copia lo que necesites.
Preguntas
- ¿Qué es una marca de tiempo Unix?
- El número de segundos desde el 1 de enero de 1970 a las 00:00:00 UTC, conocido como epoch de Unix. Es el mismo en todo el mundo, lo que lo hace ideal para guardar momentos en el tiempo.
- ¿Segundos o milisegundos?
- Una marca de tiempo actual en segundos tiene 10 dígitos; en milisegundos, 13. Las herramientas Unix y la mayoría de las API usan segundos; Date.now() de JavaScript devuelve milisegundos.
- ¿Qué es el problema del año 2038?
- Los sistemas que guardan las marcas de tiempo como enteros de 32 bits con signo se desbordan el 19 de enero de 2038. Los sistemas modernos usan valores de 64 bits y no se ven afectados.
- ¿Cómo se escriben como marcas de tiempo Unix las fechas anteriores a 1970?
- Como números negativos. -86400 es el 31 de diciembre de 1969 a las 00:00 UTC, un día antes del epoch, y este conversor acepta el signo menos. Algunos sistemas y bibliotecas antiguos rechazan las marcas de tiempo negativas, así que compruébalo antes de guardar así fechas históricas, como fechas de nacimiento.
- ¿Las marcas de tiempo Unix incluyen segundos intercalares?
- No. El tiempo Unix trata cada día como exactamente 86 400 segundos e ignora los segundos intercalares. Cuando se produce uno, el reloj del sistema repite un segundo o, en Google y AWS, lo reparte a lo largo de varias horas, lo que se conoce como smearing. En casi todas las aplicaciones puedes ignorarlo sin problema.
- ¿Cómo convierto una marca de tiempo Unix en Excel o Google Sheets?
- Usa =A1/86400 + DATE(1970,1,1) y da a la celda formato de fecha y hora; en Excel en español, la fórmula es =A1/86400 + FECHA(1970;1;1). El resultado está en UTC, así que suma tu desfase dividido entre 24 para obtener la hora local. Para una marca de tiempo en milisegundos, divide entre 86400000 en lugar de 86400.
Cómo obtener la marca de tiempo Unix actual en cualquier lenguaje
La mayoría de los lenguajes devuelven la hora epoch actual con una sola llamada. En JavaScript, Date.now() devuelve milisegundos, así que usa Math.floor(Date.now() / 1000) para obtener segundos. time.time() de Python devuelve segundos como float, y en una shell date +%s muestra segundos. Go tiene time.Now().Unix(), Java tiene Instant.now().getEpochSecond() y PostgreSQL tiene extract(epoch from now()). La parte superior de esta página muestra el valor en directo en segundos y milisegundos.
El camino inverso es igual de corto: new Date(ts * 1000).toISOString() en JavaScript, datetime.fromtimestamp(ts, tz=timezone.utc) en Python, date -d @1762540800 en Linux o date -r 1762540800 en macOS. El fallo más frecuente es mezclar unidades. Si pasas segundos a una función que espera milisegundos, acabas en enero de 1970; si pasas milisegundos donde se esperan segundos, obtienes una fecha decenas de miles de años en el futuro.
ISO 8601 vs tiempo Unix: qué formato guardar
El tiempo Unix es un único número: fácil de comparar, ordenar y usar en cálculos, y sin confusiones de zona horaria. Las cadenas ISO 8601 como 2026-11-07T20:00:00Z las pueden leer las personas y pueden llevar un desfase cuando lo necesitas, como en 2026-11-07T21:00:00+01:00. Ambos describen un instante exacto. RFC 3339 es el perfil de ISO 8601 para internet, más estricto, que en la práctica siguen la mayoría de las API.
Una buena regla es guardar los instantes como un tipo nativo de marca de tiempo o como tiempo Unix, y enviar ISO 8601 con una Z o un desfase en las API y los logs. Evita las cadenas sin ninguna zona, como 2026-11-07 20:00, porque cada lector puede suponer una distinta. Este conversor de epoch lee esas cadenas como UTC y lo indica en una nota. También entiende formatos de log como 06/Nov/2026:09:15:02 +0000.
¿Por qué mi marca de tiempo convertida tiene unas horas de diferencia?
Una marca de tiempo Unix no tiene zona horaria; cuenta los segundos desde el epoch en UTC. Si una fecha convertida parece desviada unas horas, la marca de tiempo suele estar bien y el problema está en cómo se muestra. Compara aquí la fila ISO 8601 (UTC) con la fila Local: muestran el mismo instante, una vez en UTC y otra en la zona horaria de tu navegador. El código que formatea fechas sin indicar una zona usa la zona local de la máquina.
La otra causa habitual es una marca de tiempo creada a partir de la hora local del reloj. En Python, datetime.utcnow().timestamp() es el ejemplo clásico: el valor UTC sin zona se trata como hora local, así que el resultado se desvía tanto como tu desfase respecto a UTC. Usa datetime.now(timezone.utc) en su lugar. Una diferencia de exactamente 3600 o 7200 segundos apunta a este tipo de fallo. El Conversor de zonas horarias muestra qué hora marcaba el reloj en cada zona.
Marcas de tiempo Unix destacadas
Hitos del tiempo Unix, en segundos desde el 1 de enero de 1970 UTC.
| Marca de tiempo | Fecha (UTC) | Por qué importa |
|---|---|---|
0 | 1970-01-01T00:00:00Z | El epoch de Unix: donde empieza la cuenta |
1000000000 | 2001-09-09T01:46:40Z | Mil millones de segundos |
1234567890 | 2009-02-13T23:31:30Z | Los dígitos del 1 al 0 en orden, celebrados por los programadores |
2000000000 | 2033-05-18T03:33:20Z | Dos mil millones de segundos |
2147483647 | 2038-01-19T03:14:07Z | Mayor valor de 32 bits con signo: el problema del año 2038 |
4294967295 | 2106-02-07T06:28:15Z | Mayor valor de 32 bits sin signo |
¿Algo no funciona o un resultado parece incorrecto? Informar de un problema con esta herramienta