Чому це
1 січня 1970 р. 00:00:00
вважали епоху часу ?
Чому це
1 січня 1970 р. 00:00:00
вважали епоху часу ?
Відповіді:
Ранні версії системи 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.
Історія .
У найдавніших версіях часу Unix наростало 32-бітове ціле число зі швидкістю 60 Гц, що було швидкістю синхросигналу на апараті ранніх систем Unix. Значення 60 Гц як і раніше відображається в деяких програмних інтерфейсах. Епоха також відрізнялася від поточного значення. Перше видання Посібника програміста Unix від 3 листопада 1971 року визначає час Unix як "час з 00:00:00, 1 січня 1971 року, вимірюється в шістдесятих секундах".
http://en.wikipedia.org/wiki/Unix_time#History трохи пояснює джерела часу Unix та обраної епохи. Визначення часу Unix та дати епохи пройшло через кілька змін, перш ніж стабілізуватися на тому, що є зараз.
Але не сказано, чому саме в кінцевому підсумку було обрано 1/1/1970.
Визначні уривки зі сторінки Вікіпедії:
Перше видання Unix Керівництво програміста від 3 листопада 1971 року визначає час Unix , як «час з 00:00:00 1 січня, 1971 , вимірюваний в шістдесятих роках секунди».
Через [обмежений діапазон] епоху переосмислювали не один раз , перш ніж швидкість була змінена на 1 Гц і епоха була встановлена на її теперішнє значення.
Кілька пізніших проблем, включаючи складність цього визначення, є наслідком того, що час Unix був визначений поступово шляхом використання, а не повністю визначеного для початку.
Довідник епохи дата є точкою на часовій шкалі , з яких ми відлік часу. Моменти до цього моменту рахуються з від’ємним числом, а моменти після цього - додатним числом.
Чому 1 січня 1970 00:00:00 вважається епохальним часом?
Ні, не епоха, епоха. У вжитку багато епох .
Цей вибір епохи довільний .
Основні комп'ютерні системи та бібліотеки використовують будь-яку, щонайменше, пару десятків різних епох . Однією з найпопулярніших епох є загальновідомий як Unix Time , використовуючи згаданий вами момент 1970 UTC.
У той час як популярні, Unix Time 1 970 - й не може бути найбільш поширеним. Також найпоширенішими будуть 0 січня 1900 року для незліченних електронних таблиць Microsoft Excel & Lotus 1-2-3, або 1 січня 2001 року, які використовували Apple Cocoa Framework у понад мільярд iOS / macOS по всьому світу в незліченних додатках. Чи, можливо, 6 січня 1980 року використовуються GPS- пристрої?
Різні системи використовують різну деталізацію під час підрахунку часу.
Навіть так званий "час Unix" змінюється, деякі системи рахують цілі секунди, а деякі рахують мілісекунди . Багато баз даних, наприклад Postgres, використовують мікросекунди . Деякі, наприклад сучасний фреймворк java.time в Java 8 і новіших, використовують наносекунди . Деякі використовують інші деталі.
Оскільки у використанні посилання на епоху та в деталях існує стільки розбіжностей, як правило, найкраще уникати повідомляючих моментів як відліку від епохи. Між неоднозначністю епохи та деталізацією, а також нездатністю людей сприймати значущі значення (і, отже, пропускати помилкові значення), використовуйте звичайний текст замість цифр.
Стандарт ISO 8601 пропонує широкий набір добре розроблених практичних форматів для вираження значень дати та часу у вигляді тексту. Ці формати легко розбирати машиною, а також легко читати людьми в різних культурах.
До них належать:
2019-01-23
2019-01-23T12:34:56.123456Z
2019-01-23T18:04:56.123456+05:30
2019-234
Коротка відповідь: Чому ні?
Більш довга відповідь: Сам час насправді не має значення, доки всі, хто його використовує, погоджуються на його значення. Оскільки 1/1/70 використовується так довго, використання його зробить код максимально зрозумілим для якомога більшої кількості людей.
Немає великої заслуги у виборі довільної епохи, щоб бути лише іншим.