Por que es
1 de enero de 1970 00:00:00
considerado el tiempo de la época ?
Por que es
1 de enero de 1970 00:00:00
considerado el tiempo de la época ?
Respuestas:
Las primeras versiones de Unix midieron el tiempo del sistema en intervalos de 1/60 s. Esto significaba que un entero sin signo de 32 bits solo podía representar un lapso de tiempo inferior a 829 días. Por esta razón, el tiempo representado por el número 0
(llamado la época ) tuvo que establecerse en el pasado muy reciente. Como esto fue a principios de la década de 1970, la época se estableció en 1971-1-1.
Más tarde, el tiempo del sistema se cambió para aumentar cada segundo, lo que aumentó el lapso de tiempo que podría representar un entero sin signo de 32 bits a alrededor de 136 años. Como ya no era tan importante exprimir cada segundo del mostrador, la época se redondeó a la década más cercana, convirtiéndose en 1970-1-1. Hay que suponer que esto se consideró un poco más limpio que 1971-1-1.
Tenga en cuenta que una de 32 bits firmado entero usando 01/01/1970 como su época puede representar hasta fechas 19/01/2038 , fecha en la que se va a envolver alrededor de 12/13/1901.
Historia .
Las primeras versiones del tiempo Unix tenían un número entero de 32 bits que se incrementaba a una velocidad de 60 Hz, que era la velocidad del reloj del sistema en el hardware de los primeros sistemas Unix. Como resultado, el valor 60 Hz todavía aparece en algunas interfaces de software. La época también difería del valor actual. La primera edición del Manual del programador de Unix, fechada el 3 de noviembre de 1971, define el tiempo de Unix como "el tiempo transcurrido desde las 00:00:00, 1 de enero de 1971, medido en sexagésimas de segundo".
http://en.wikipedia.org/wiki/Unix_time#History explica un poco sobre los orígenes del tiempo Unix y la época elegida. La definición del tiempo de Unix y la fecha de la época pasaron por un par de cambios antes de estabilizarse en lo que es ahora.
Pero no dice por qué exactamente el 1/1/1970 fue elegido al final.
Extractos notables de la página de Wikipedia:
La primera edición del Manual del programador de Unix del 3 de noviembre de 1971 define la hora de Unix como "la hora desde las 00:00:00 del 1 de enero de 1971 , medido en sesenta de segundo".
Debido a [el] rango limitado, la época fue redefinió más de una vez , antes de que la velocidad se cambiara a 1 Hz y la época se ajustara a su valor actual.
Varios problemas posteriores, incluida la complejidad de la presente definición, resultan del tiempo Unix que se ha definido gradualmente por el uso en lugar de estar completamente definido para comenzar.
Una fecha de referencia de época es un punto en la línea de tiempo desde el que contamos el tiempo. Momentos antes de ese punto se cuentan con un número negativo, momentos después se cuentan con un número positivo.
¿Por qué el 1 de enero de 1970 00:00:00 se considera el tiempo de época?
No, no la época, una época. Hay muchas épocas en uso .
Esta elección de época es arbitraria .
Los principales sistemas informáticos y bibliotecas utilizan cualquiera de al menos un par de docenas de épocas diferentes . Una de las épocas más populares se conoce comúnmente como Tiempo Unix , utilizando el momento UTC de 1970 que mencionó.
Si bien es popular, el 1970 de Unix Time puede no ser el más común. También en el plazo más común sería el 0 de enero de 1900 para innumerables hojas de cálculo de Microsoft Excel y Lotus 1-2-3, o el 1 de enero de 2001 utilizado por el marco Cocoa de Apple en más de mil millones de máquinas iOS / macOS en todo el mundo en innumerables aplicaciones. ¿O quizás el 6 de enero de 1980 utilizado por dispositivos GPS ?
Diferentes sistemas utilizan granularidad diferente en el recuento del tiempo.
Incluso el llamado "Tiempo Unix" varía, con algunos sistemas contando segundos enteros y algunos contando milisegundos . Muchas bases de datos como Postgres usan microsegundos . Algunos, como el framework java.time moderno en Java 8 y posterior, usan nanosegundos . Algunos usan aún otras granularidades.
Debido a que hay tanta variación en el uso de una referencia de época y en las granularidades, generalmente es mejor evitar los momentos de comunicación como un conteo desde la época. Entre la ambigüedad de la época y la granularidad, más la incapacidad de los humanos para percibir valores significativos (y, por lo tanto, perder los valores con errores), use texto sin formato en lugar de números.
El ISO 8601 proporciona un amplio conjunto de formatos prácticos y bien diseñados para expresar valores de fecha y hora como texto. Estos formatos son fáciles de analizar por máquina, así como también fáciles de leer por humanos en todas las culturas.
Éstas incluyen:
2019-01-23
2019-01-23T12:34:56.123456Z
2019-01-23T18:04:56.123456+05:30
2019-234
Respuesta corta: ¿por qué no?
Respuesta más larga: el tiempo en sí mismo realmente no importa, siempre y cuando todos los que lo usen estén de acuerdo con su valor. Como 1/1/70 ha estado en uso durante tanto tiempo, usarlo hará que el código sea lo más comprensible posible para la mayor cantidad de personas posible.
No hay un gran mérito en elegir una época arbitraria para ser diferente.