Perché 1/1/1970 è il “tempo dell’epoca”?

Perché è

1 gennaio 1970 00:00:00

considerato il tempo dell’epoca ?

Le prime versioni di Unix misuravano il tempo di sistema in intervalli di 1/60 secondi. Ciò significava che un numero intero senza segno a 32 bit poteva rappresentare solo un intervallo di tempo inferiore a 829 giorni. Per questo motivo, il tempo rappresentato dal numero 0 (chiamato l’ epoca ) doveva essere impostato nel passato molto recente. Dato che questo era nei primi anni ’70, l’epoca era fissata al 1971-1-1.

Successivamente, l’ora del sistema è stata modificata in incrementi ogni secondo, il che ha aumentato l’intervallo di tempo che poteva essere rappresentato da un numero intero senza segno a 32 bit a circa 136 anni. Poiché non era più così importante spremere ogni secondo dal banco, l’epoca è stata arrotondata al decennio successivo, diventando quindi 1970-1-1. Si deve supporre che questo è stato considerato un po ‘più ordinario del 1971-1-1.

Si noti che un intero con segno a 32 bit che usa 1970-1-1 come epoca può rappresentare date fino al 2038-1-19 , data in cui si avvolgerà intorno al 1901-12-13.

Storia

Le prime versioni di Unix time avevano un incremento di numeri interi a 32 bit ad una velocità di 60 Hz, che era la velocità dell’orologio di sistema sull’hardware dei primi sistemi Unix. Il valore 60 Hz appare ancora in alcune interfacce software come risultato. L’epoca differiva anche dal valore attuale. La prima edizione del Manuale del Programmatore Unix datata 3 novembre 1971 definisce il tempo Unix come “il tempo dalle 00:00:00 del 1 gennaio 1971 misurato in sessantesimi di secondo”.

http://en.wikipedia.org/wiki/Unix_time#History spiega un po ‘le origini del tempo Unix e l’epoca scelta. La definizione di tempo unix e la data dell’epoca subirono un paio di cambiamenti prima di stabilizzarsi su ciò che è ora.

Ma non dice perché esattamente 1/1/1970 è stato scelto alla fine.

Estratti notevoli dalla pagina di Wikipedia:

La prima edizione del Manuale del Programmatore Unix datata 3 novembre 1971 definisce il tempo Unix come “il tempo dalle 00:00:00 del 1 gennaio 1971 misurato in sessantesimi di secondo”.

A causa della [gamma] limitata, l’epoca è stata ridefinita più di una volta , prima che la velocità fosse cambiata in 1 Hz e l’epoca era impostata sul suo valore attuale.

Diversi problemi successivi, inclusa la complessità della presente definizione, derivano dal fatto che il tempo di Unix è stato definito gradualmente dall’uso piuttosto che completamente definito per iniziare.

Risposta breve: perché no?

Risposta più lunga: il tempo in sé non ha molta importanza, a patto che tutti coloro che lo usano concordino sul suo valore. Poiché 1/1/70 è stato utilizzato per così tanto tempo, utilizzarlo ti renderà il codice il più comprensibile ansible per il maggior numero ansible di persone.

Non c’è grande merito nello scegliere un’epoca arbitraria solo per essere diversi.