Чому все рахується з 1970 року?


3

Тому я озирнувся і не міг знайти відповіді на це.

У мене є iPhone (jailbroke), і я помічаю, що в декількох налаштуваннях є рядок, як правило, у файлах .plist, який говорить щось подібне до "TimeIntervalSince1970". Тепер я знаю, що всі таймери, такі як ці, потребують базової дати та часу для початку.

Але моє справжнє питання - чому 1970 рік?

Відповіді:


9

Не все рахується з 1970 року. Це стандартний час Unix.

Час Unix або POSIX - це система опису точок у часі, що визначається як кількість секунд, що минули з півночі пролептичного координованого універсального часу (UTC) 1 січня 1970 року, не рахуючи високосних секунд.

Час Unix

Ранні версії системи Unix вимірювали час системи в інтервалах 1/60 с. Це означало, що 32-розрядне ціле число, не підписане, може представляти лише проміжок часу менше 829 днів. З цієї причини час, представлений цифрою 0 (називається епохою), повинен був бути встановлений у зовсім недавньому минулому. Як це було на початку 1970-х, епоха була встановлена ​​на 1971-1-1.

Пізніше системний час змінювався на приріст щосекунди, що збільшувало проміжок часу, який міг бути представлений 32-бітовим безпідписаним цілим числом до приблизно 136 років. Оскільки вже не так важливо витісняти кожну секунду з лічильника, епоха була округлена до найближчого десятиліття, ставши таким чином 1970-1-1. Потрібно припустити, що це вважалося трохи акуратніше, ніж 1971-1-1.

Зауважте, що 32-розрядне ціле число, підписане 1970-1-1 як його епоха, може представляти дати до 2038-1-19, на яку дату він завершиться до 1901-12-13.

Чому 1.01.1970 р. Є «епохальним часом»?


Ось чому 19.1.2038 р. З'явиться те, що позначається як "Y2K38".
RedEagle2000

1
У відділі "не все використовує 1970" клас Class NSDate Objective-C для OS X і iOS використовує 1/1/2001.
Андрій Медіко

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.