Apoya a Time.now: Únete a nuestro Plan Premium ¡para una experiencia sin anuncios! Apóyanos: ¡Hazte Premium sin anuncios!

Tiempo Unix en vivo

1779043856

Segundos desde la época Unix (00:00:00 UTC el 1 de enero de 1970)

¿Qué es el tiempo Unix?

Tiempo Unix (también conocido como tiempo Epoch, tiempo POSIX o marca de tiempo Unix) es un sistema para describir un punto en el tiempo. Es el número de segundos que han transcurrido desde el Epoch Unix, que se define como las 00:00:00 UTC del jueves, 1 de enero de 1970. Se usa ampliamente en sistemas operativos similares a Unix y en muchos otros sistemas informáticos.

La principal ventaja del tiempo Unix es su simplicidad. Representa el tiempo como un entero único, universalmente entendido, que aumenta continuamente. Esto hace que sea increíblemente fácil de almacenar, comparar y realizar cálculos con marcas de tiempo sin preocuparse por zonas horarias, horario de verano o diferentes sistemas de calendario. Por ejemplo, para encontrar la duración entre dos eventos, simplemente restas sus marcas de tiempo Unix.

Aunque este número en bruto es perfecto para las computadoras, no es muy amigable para los humanos. Para cerrar esta brecha, los desarrolladores y entusiastas de la tecnología usan una herramienta llamada convertidor de epoch. Puedes usarlo para convertir instantáneamente cualquier marca de tiempo en una fecha legible por humanos, o hacer lo contrario encontrando la marca de tiempo para una fecha específica.

El problema del año 2038

Un problema bien conocido relacionado con el tiempo Unix es el "Problema del año 2038". Es similar en naturaleza al problema del Y2K. Muchos sistemas informáticos antiguos estaban diseñados para almacenar la marca de tiempo Unix como un entero con signo de 32 bits. Un entero con signo de 32 bits puede representar valores desde -2,147,483,648 hasta 2,147,483,647.

El valor máximo, 2,147,483,647, se alcanzará a las 03:14:07 UTC del 19 de enero de 2038. En el siguiente segundo, el entero desbordará y volverá a su valor más negativo, que será interpretado por los sistemas como una fecha en 1901. Esto podría causar fallos generalizados en software heredado que depende de representaciones de tiempo de 32 bits.

La solución es usar un entero de 64 bits para almacenar la marca de tiempo. Un entero de 64 bits tiene un valor máximo tan grande que no se desbordará durante aproximadamente 292 mil millones de años, resolviendo efectivamente el problema a largo plazo. La mayoría de los sistemas operativos y software modernos ya han hecho la transición a representaciones de tiempo de 64 bits.

Segundos intercalares y tiempo Unix

Un detalle técnico importante es que el tiempo Unix no tiene en cuenta los segundos intercalares. Aunque UTC (Tiempo Universal Coordinado) ocasionalmente añade un segundo intercalar para mantener nuestros relojes alineados con la rotación de la Tierra, la marca de tiempo Unix simplemente los ignora y continúa contando linealmente.

Esto significa que el tiempo Unix no es una representación verdadera de UTC. En cambio, se describe con mayor precisión como un conteo lineal de segundos. Cuando ocurre un segundo intercalar, el tiempo Unix a veces repite un segundo para mantenerse sincronizado. Esta nuance es crítica para aplicaciones científicas y de alta precisión, pero para la mayoría de las aplicaciones de propósito general, la diferencia es insignificante.

Usos comunes del tiempo Unix

  • Marcas de tiempo de archivos: Los sistemas operativos usan marcas de tiempo Unix para rastrear cuándo se crearon, modificaron o accedieron por última vez a los archivos.
  • Bases de datos: Es una forma común y eficiente de almacenar información de fecha y hora para registros (por ejemplo, created_at, updated_at).
  • APIs y desarrollo web: Se usan para la expiración de sesiones, control de caché y registro de solicitudes API.
  • Programación: Casi todos los lenguajes de programación proporcionan funciones para obtener la marca de tiempo Unix actual y convertirla a y desde formatos de fecha legibles por humanos.