Conversor de marca de tiempo Unix

Convierte entre marcas de tiempo Unix y fechas legibles

Cargando...

Referencia de unidades de tiempo

Unidad Segundos
1 minuto 60
1 hora 3.600
1 día 86.400
1 semana 604.800
30 días 2.592.000
365 días 31.536.000
Evento Marca de tiempo
Época Unix 0
1 mil millones (sep 2001) 1.000.000.000
1,5 mil millones (jul 2017) 1.500.000.000
2 mil millones (may 2033) 2.000.000.000
Y2038 (máx. 32 bits) 2.147.483.647
3 mil millones (ene 2065) 3.000.000.000

Obtener la marca de tiempo Unix actual en código

JavaScript / TypeScript

Math.floor(Date.now() / 1000)  // seconds
Date.now()                      // milliseconds

Python

import time
int(time.time())                # seconds

PHP

time()                          // seconds
microtime(true)                 // with microseconds

Go

time.Now().Unix()               // seconds
time.Now().UnixMilli()          // milliseconds

Ruby

Time.now.to_i                   # seconds
Time.now.to_f                   # with fractional

Java / Kotlin

System.currentTimeMillis() / 1000 // seconds
Instant.now().getEpochSecond()    // Java 8+

C# / .NET

DateTimeOffset.UtcNow.ToUnixTimeSeconds()
DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()

Rust

SystemTime::now()
  .duration_since(UNIX_EPOCH)?.as_secs()

Swift

Int(Date().timeIntervalSince1970) // seconds

Bash / Shell

date +%s                        # GNU/Linux
date -j +%s                     # macOS

SQL (PostgreSQL)

SELECT EXTRACT(EPOCH FROM NOW())
SELECT NOW()::timestamp

SQL (MySQL)

SELECT UNIX_TIMESTAMP()
SELECT FROM_UNIXTIME(1713024000)

¿Qué es el tiempo Unix?

El tiempo Unix (también llamado tiempo Epoch, tiempo POSIX o marca de tiempo Unix) es un sistema para rastrear el tiempo como un total acumulado de segundos desde la época Unix — 1 de enero de 1970, 00:00:00 UTC. Fue introducido con el sistema operativo Unix en los laboratorios Bell a finales de los años 60 y desde entonces se ha convertido en la representación de tiempo más utilizada en la informática.

La ventaja clave de las marcas de tiempo Unix es su universalidad: representan el mismo momento absoluto en el tiempo independientemente de la zona horaria o la configuración regional. Una marca de tiempo de 1713024000 siempre significa 14 de abril de 2024, 00:00:00 UTC — ya sea que la leas en Nueva York, Londres o Tokio. Esto las hace ideales para almacenar marcas de tiempo en bases de datos, sincronizar sistemas distribuidos y transmitir valores de tiempo a través de redes.

El tiempo Unix ignora deliberadamente los segundos intercalares: cada día se trata como exactamente 86.400 segundos. Esto simplifica el cálculo a costa de una deriva ocasional respecto al UTC. En la práctica, la diferencia es insignificante — menos de 30 segundos se han acumulado desde 1972 cuando se introdujeron los segundos intercalares.

La limitación más significativa del tiempo Unix fue el problema del Año 2038. Las implementaciones tempranas almacenaban marcas de tiempo como enteros con signo de 32 bits, que solo pueden representar valores hasta 2.147.483.647 — correspondiente al 19 de enero de 2038, 03:14:07 UTC. Los sistemas modernos han migrado en gran medida a enteros de 64 bits, que extienden el rango a aproximadamente 292 mil millones de años en cada dirección.

Preguntas frecuentes

¿Qué es una marca de tiempo Unix?

Una marca de tiempo Unix es el número de segundos transcurridos desde el 1 de enero de 1970, 00:00:00 UTC (la "época Unix"). Representa un punto en el tiempo como un solo entero, independiente de zonas horarias. Por ejemplo, la marca de tiempo 0 es medianoche del 1 de enero de 1970 UTC, y 1000000000 es el 9 de septiembre de 2001 a las 01:46:40 UTC.

¿Cómo sé si una marca de tiempo está en segundos o milisegundos?

Cuenta los dígitos. Un número de 10 dígitos es segundos (ej., 1713024000). Un número de 13 dígitos es milisegundos (ej., 1713024000000). Date.now() de JavaScript devuelve milisegundos, mientras que la mayoría de lenguajes del servidor (Python, PHP, Go, Ruby) devuelven segundos. Nuestro conversor detecta el formato automáticamente.

¿Qué es el problema Y2038?

Los sistemas que usan enteros con signo de 32 bits para marcas de tiempo Unix solo pueden representar tiempos hasta el 19 de enero de 2038, 03:14:07 UTC (marca de tiempo 2.147.483.647). Después de esto, el entero se desborda. Los sistemas modernos de 64 bits evitan esto completamente — una marca de tiempo de 64 bits puede representar fechas por unos 292 mil millones de años.

¿El tiempo Unix maneja los segundos intercalares?

No. El tiempo Unix trata cada día como exactamente 86.400 segundos, ignorando los segundos intercalares por completo. Cuando se inserta un segundo intercalar en UTC, el tiempo Unix efectivamente repite un segundo. La diferencia acumulada es menor a 30 segundos desde 1972 — insignificante para la mayoría de aplicaciones.

¿Por qué el tiempo Unix comienza el 1 de enero de 1970?

La fecha fue elegida durante el desarrollo del sistema operativo Unix en los laboratorios Bell a finales de los años 60. Era un número redondo (inicio de una nueva década) lo suficientemente reciente para ser útil, y un entero de 32 bits podía cubrir suficiente tiempo futuro para ser práctico.

¿Las marcas de tiempo Unix pueden ser negativas?

Sí. Las marcas de tiempo Unix negativas representan fechas antes del 1 de enero de 1970. Por ejemplo, -86400 representa el 31 de diciembre de 1969. La mayoría de lenguajes de programación y nuestro conversor admiten marcas de tiempo negativas correctamente.