Dlaczego 1/1/1970 jest "czasem epoki"?

Dlaczego

1 stycznia 1970 00: 00: 00

Rozważał czas epoki ?

Author: rahul, 2009-07-07

4 answers

Wczesne wersje Uniksa mierzyły czas systemowy w odstępach 1/60 s. Oznaczało to, że 32-bitowa niepodpisana liczba całkowita może reprezentować tylko okres czasu krótszy niż 829 dni. Z tego powodu czas reprezentowany przez liczbę 0 (zwaną epoką ) musiał być ustawiony w bardzo niedawnej przeszłości. Jak to było na początku 1970 roku, Epoka została ustawiona na 1971-1-1.

Później, czas systemowy został zmieniony na przyrost co sekundę, co zwiększyło rozpiętość czasu, który może być reprezentowany przez 32-bitowa niepodpisana liczba całkowita do około 136 lat. Ponieważ nie było już tak ważne, aby wycisnąć co sekundę z licznika, Epoka została zaokrąglona w dół do najbliższej dekady, stając się 1970-1-1. Trzeba założyć, że uznano to za nieco lepsze niż 1971-1-1.

Zauważ, że 32-bitowa podpisana liczba całkowita, używająca 1970-1-1 jako swojej epoki, może reprezentować daty do 2038-1-19, w którym dniu zawinie się do 1901-12-13.

 381
Author: Matt Howells,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-07 09:17:23

Historia .

Najwcześniejsze wersje Unix time miały a 32-bit integer incrementing at a częstotliwości 60 Hz, co było szybkością zegar systemowy na sprzęcie wczesne systemy Unix. Wartość 60 Hz nadal pojawia się w niektórych programach interfejsy w wyniku. Epoka także różniła się od bieżącej wartości. na first edition Unix Programmer ' s Manual data 3 listopada 1971 Czas Unix jako "czas od 00:00:00, Jan. 1, 1971, mierzone w sześćdziesiątych sekund".

 46
Author: Stu Thompson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-07 11:19:45

Http://en.wikipedia.org/wiki/Unix_time#History wyjaśnia trochę o początkach czasu uniksowego i wybranej epoce. Definicja czasu Uniksa i daty epoki przeszła kilka zmian, zanim ustabilizowała się na tym, czym jest teraz.

Ale nie mówi, dlaczego dokładnie 1/1/1970 został wybrany w końcu.

Godne uwagi fragmenty strony Wikipedii:

The first edition Unix Programmer ' s Manual dated November 3, 1971 defines the Unix czas jako " czas od 00: 00: 00, Jan. 1, 1971, mierzone w sześćdziesiątych częściach sekundy".

Z powodu [] ograniczonego zakresu Epoka została przedefiniowana więcej niż raz, zanim zmieniono częstotliwość na 1 Hz i ustawiono epokę na jej obecną wartość.

Kilka późniejszych problemów, w tym złożoność obecnej definicji, wynika z tego, że czas Uniksa był definiowany stopniowo przez użycie, a nie w pełni definiowany na początek.

 7
Author: Dawie Strauss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-07 08:09:36

Krótka odpowiedź: dlaczego nie?

Dłuższa odpowiedź: sam czas nie ma znaczenia, o ile wszyscy, którzy go używają, zgadzają się co do jego wartości. Ponieważ 1/1/70 jest używany tak długo, użycie go sprawi, że kod będzie tak zrozumiały, jak to możliwe dla jak największej liczby osób.

Nie ma wielkiej zasługi w wyborze arbitralnej epoki tylko po to, aby być innym.

 -9
Author: PaulJWilliams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-07 07:51:08