¿Por qué es 1/1/1970 el “tiempo de época”?

Por que es

1 de enero de 1970 00:00:00

considerado el tiempo de la época ?

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 epoch ) 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, la hora del sistema se modificó para boost cada segundo, lo que aumentó el lapso de tiempo que podría representarse con 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 así en 1970-1-1. Uno debe suponer que esto se consideró un poco más limpio que 1971-1-1.

Tenga en cuenta que un entero de 32 bits con signo que usa 1970-1-1 como su época puede representar fechas hasta 2038-1-19 , en cuya fecha se ajustará a 1901-12-13.

Historia

Las primeras versiones del tiempo de Unix tenían un entero de 32 bits que aumentaba a una velocidad de 60 Hz, que era la frecuencia del reloj del sistema en el hardware de los primeros sistemas Unix. El valor 60 Hz todavía aparece en algunas interfaces de software como resultado. La época también difería del valor actual. La primera edición del Manual del progtwigdor de Unix del 3 de noviembre de 1971 define el tiempo de Unix como “el tiempo desde 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 de Unix y la época elegida. La definición de tiempo Unix y la fecha de época pasó por un par de cambios antes de estabilizarse en lo que es ahora.

Pero no dice por qué exactamente 1/1/1970 fue elegido al final.

Extractos notables de la página de Wikipedia:

La primera edición del Manual del progtwigdor de Unix del 3 de noviembre de 1971 define el tiempo de Unix como “el tiempo desde 00:00:00, 1 de enero de 1971 , medido en sexagésimas de segundo”.

Debido a [el] rango limitado, la época se redefinió más de una vez , antes de que la velocidad se cambiara a 1 Hz y la época se estableció en su valor actual.

Varios problemas posteriores, incluida la complejidad de la presente definición, resultan del tiempo de Unix que se ha definido gradualmente por el uso en lugar de definirse por completo para empezar.

Respuesta corta: ¿por qué no?

Respuesta más larga: el tiempo en sí realmente no importa, siempre y cuando todos los que lo usan estén de acuerdo con su valor. Como 1/1/70 ha estado en uso durante tanto tiempo, su uso hará que el código sea lo más comprensible posible para el mayor número de personas posible.

No hay gran mérito en elegir una época arbitraria solo para ser diferente.