Вопрос по unix – Почему 01.01.1970 - «эпохальное время»?

424

Почему

1 January 1970 00:00:00

считаетсяepoch time?

Мы должны начать отсчитывать время с этой даты, поэтому мы сейчас на 44-м году. Leonardo Raele
Сегодня, прямо сейчас, это 1499969999! Это всего лишь ок. 8 часов осталось! Dr Beco
нотабене этот вопрос был опубликован @phoenix, я только исправил грамматику. Matt Howells
Сегодня это было 380 000 часов назад mplungjan
Не уверен, почему кто-то думал, что это субъективно. & APOS; Epoch & APOS; время - это стандартная схема отметок времени. ConcernedOfTunbridgeWells

Ваш Ответ

5   ответов
-10

Более длинный ответ: само время не имеет большого значения, если каждый, кто его использует, согласен с его ценностью. Поскольку 1/1/70 использовался так долго, его использование сделает ваш код максимально понятным для максимально возможного числа людей.

Нет большой заслуги в выборе произвольной эпохи просто для того, чтобы быть другим.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
398

значало, что 32-разрядное целое число без знака может представлять промежуток времени менее 829 дней. По этой причине время, представленное числом0 (называетсяepoch) должен был быть установлен в самом недавнем прошлом. Как это было в начале 1970-х годов, эпоха была установлена в 1971-1-1.

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

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

Error: User Rate Limit Exceededcompeting standardsError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
47

история.

The earliest versions of Unix time had a 32-bit integer incrementing at a rate of 60 Hz, which was the rate of the system clock on the hardware of the early Unix systems. The value 60 Hz still appears in some software interfaces as a result. The epoch also differed from the current value. The first edition Unix Programmer's Manual dated November 3, 1971 defines the Unix time as "the time since 00:00:00, Jan. 1, 1971, measured in sixtieths of a second".

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1
Epoch reference date

справочная дата эпохи это точка на временной шкале, с которой мы считаем время. Моменты до этой точки считаются с отрицательным числом, моменты после - с положительным числом.

Many epochs in use

Why is 1 January 1970 00:00:00 considered the epoch time?

Нет неthe эпоха,an эпоха. Естьmany epochs in use.

Этот выбор эпохиarbitrary.

Основные компьютерные системы и библиотеки используют по крайней мерепара десяток разных эпох, Одна из самых популярных эпох широко известна какUnix Timeиспользуя момент UTC 1970 года, о котором вы упомянули.

Несмотря на популярность, Unix Time & 1970 x не может бытьmost общий. Кроме того, наиболее распространенным будет 0 января 1900 года для бесчисленного множества Microsoft Excel & amp; Таблицы Lotus 1-2-3, или 1 января 2001 года, используемые платформой Apple Cocoa на более чем миллиарде машин iOS / macOS по всему миру в бесчисленных приложениях. Или, возможно, 6 января 1980 года используетсяGPS устройства?

Many granularities

Различные системы используют разную степень детализации при подсчете времени.

Даже в так называемом «Unix Time» & # x201D; варьируется, при этом некоторые системы считаютсекунд и некоторые считаютмиллисекунды, Многие базы данных, такие как Postgres используютмикросекунд, Некоторые, такие как современныеjava.time фреймворк в Java 8 и выше, используйтенаносекунд, Некоторые используют еще другие детали.

ISO 8601

Поскольку в использовании эталонной эпохи и гранулярности так много различий, как правило, лучше избегать передачи моментов в виде эпох эпохи. Между неоднозначностью эпохи детализация, а также неспособность людей воспринимать значимые значения (и, следовательно, пропускать ошибочные значения), использовать простой текст вместо цифр.

ISO 8601 Стандарт предоставляет обширный набор практических хорошо разработанных форматов для выражения значений даты и времени в виде текста. Эти форматы легко разбираются на машине, а также легко читаются людьми в разных культурах.

Они включают:

Date-only: 2019-01-23 Moment in UTC: 2019-01-23T12:34:56.123456Z Moment with offset-from-UTC: 2019-01-23T18:04:56.123456+05:30 Week of week-based-year: 2019-W23 Ordinal date (1st to 366th day of year): 2019-234
8

http://en.wikipedia.org/wiki/Unix_time#History объясняет немного о происхождении времени Unix и выбранной эпохи. Определение времени Unix и даты эпохи претерпело несколько изменений, прежде чем стабилизировалось на том, что есть сейчас.

Но это не говорит о том, почему именно 01.01.1970 был выбран в конце.

Известные выдержки из страницы Википедии:

The first edition Unix Programmer's Manual dated November 3, 1971 defines the Unix time as "the time since 00:00:00, Jan. 1, 1971, measured in sixtieths of a second".

Because of [the] limited range, the epoch was redefined more than once, before the rate was changed to 1 Hz and the epoch was set to its present value.

Several later problems, including the complexity of the present definition, result from Unix time having been defined gradually by usage rather than fully defined to start with.

Похожие вопросы