Todos los artículos

Tiempo Unix: por qué las computadoras cuentan el tiempo desde 1970

El tiempo Unix (Unix timestamp) es la cantidad de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC. Esa fecha se llama la "época Unix", y es el punto de referencia que usan prácticamente todos los sistemas operativos, bases de datos y lenguajes de programación modernos para contar el tiempo.

Por qué precisamente 1970

La fecha no se eligió por ningún evento especial, sino por pura practicidad: los desarrolladores de Unix en Bell Labs, a principios de los años 70, simplemente tomaron el año en curso como un punto de partida redondo y conveniente. No hay ningún significado más profundo detrás de esa fecha.

Por qué este formato es tan común en migraciones de bases de datos

Al migrar datos entre sistemas —por ejemplo, de una base de datos heredada a un nuevo backend en la nube— convertir cada fecha a un único entero Unix evita ambigüedades de zona horaria y de formato regional (como confundir el día y el mes en fechas escritas como 03/04/2024). Es una de las razones por las que tantas herramientas de migración usan timestamps Unix como formato intermedio.

El problema del año 2038

Muchos sistemas antiguos almacenan el tiempo Unix como un entero de 32 bits con signo, que solo puede representar valores hasta el 19 de enero de 2038. Después de esa fecha, ese número se desbordará — un riesgo real para equipos industriales, cajeros automáticos y otro hardware embebido de larga vida que sigue funcionando con software de hace décadas y no es tan sencillo de sustituir.

Para qué se necesita esto

  • Convertir un timestamp de logs o respuestas de API en una fecha y hora legibles.
  • Calcular la diferencia entre dos momentos en el tiempo sin hacer cálculos manuales de calendario.
  • Diagnosticar problemas relacionados con zonas horarias al trabajar con timestamps.

El tiempo Unix y los segundos intercalares

El tiempo Unix asume que cada día dura exactamente 86400 segundos, ignorando los segundos intercalares (leap seconds) que ocasionalmente se añaden al UTC para compensar la desaceleración de la rotación terrestre. Esto significa que el tiempo Unix técnicamente no es una representación exacta del UTC en los momentos en que se añade un segundo intercalar — la mayoría de los sistemas simplemente "distribuyen" (smear) o repiten un segundo para evitar un salto en el contador.

Probar la herramienta