Segundos transcurridos desde la época
(aphyr.com)-
Segundos desde la época
-
Se suele decir que el tiempo POSIX, o tiempo Unix, representa los segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00. Sin embargo, esto no es exacto. Por ejemplo, el tiempo POSIX para 2024-12-25 18:54:53 UTC es 1735152686, lo que en realidad es 29 segundos menor que los 1735152715 segundos efectivamente transcurridos.
-
El tiempo POSIX se deriva del Tiempo Universal Coordinado (UTC) en IEEE 1003.1. El estándar asume que cada día tiene exactamente 86,400 segundos. Pero en la práctica, la duración de un día no es de 86,400 segundos y cambia con el tiempo. Para ajustar esto, los astrónomos declaran periódicamente segundos intercalares en UTC.
-
-
Arqueología
-
El apéndice B de IEEE 1003 incluye una discusión interesante sobre los segundos intercalares. Cuando se publicó el estándar, ya se habían agregado 14 segundos intercalares desde el 1 de enero de 1970. Esos segundos intercalares se ignoran para facilitar el cálculo de diferencias de tiempo.
-
La mayoría de los sistemas consideran el tiempo como un valor que aumenta continuamente. Pero la mayoría de los sistemas no rastrean los segundos intercalares ni están sincronizados con una referencia horaria estándar. Por eso, exigir que los segundos desde la época representen con exactitud los segundos entre la época y el instante de referencia no resulta apropiado.
-
Una interpretación consistente de los segundos desde la época puede ser importante para cierto tipo de aplicaciones distribuidas. La acumulación de segundos intercalares es impredecible, y es probable que la cantidad de segundos intercalares desde la época siga aumentando.
-
-
Qué hacer en su lugar
-
Para calcular la duración entre dos eventos en una misma computadora, se debe usar
CLOCK_MONOTONIC. Si no es necesario intercambiar tiempo POSIX con otros sistemas, se puede usar TAI, GPS o LORAN. -
Si se necesita una alineación aproximada con el sistema de marcas de tiempo POSIX, los segundos intercalares pueden distribuirse a lo largo de una ventana de tiempo más amplia. Bibliotecas como
qntmt-a-iadmiten conversiones entre POSIX y TAI. -
Hay esfuerzos en marcha para eliminar los segundos intercalares, con la esperanza de que eso se complete para 2035. Esto requerirá trabajo adicional para construir tablas de conversión para todo lo que use la suposición de “86,400 segundos por día”, pero hará mucho más simple preguntar cuántos segundos hay entre dos momentos. Al menos para los tiempos posteriores a 2035.
-
1 comentarios
Opiniones de Hacker News
Leí un libro de ciencia ficción llamado "A Deepness in the Sky". Me pareció interesante la mención de los segundos desde una época de referencia
Hay esfuerzos en marcha para eliminar los segundos intercalares, y esperan completarlo para 2035
La "época UTC" moderna es el 1 de enero de 1972
Cada vez que leo sobre medición del tiempo aprendo algo nuevo
Hace poco trabajé con código para VAX, o que corría sobre OpenVMS, y fue la primera vez que vi una época de referencia en 17 de noviembre de 1858
Algunos puntos en el tiempo no se pueden representar con timestamps POSIX, y algunos timestamps POSIX no coinciden con el tiempo real
Creo que este artículo arruinó la Navidad
Cuando guardo fechas en una base de datos, siempre las guardo como tiempo de época Unix, y la información de zona horaria la guardo por separado
Hace unos 10 años, en una conferencia, escuché que Google no usa segundos intercalares, sino que los distribuye entre segundos normales
Me pregunto si existe una forma de medir el tiempo que sea sincronizada y aumente de forma monótona