Почему 1/1/1970-это "эпоха времени"?


Почему

1 января 1970 00:00:00

считается эпоха времени?

4 408

4 ответа:

ранние версии 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 time имели 32-разрядное целое число, увеличивающееся на a частотой 60 Гц, которая была норма системные часы на аппаратном обеспечении ранние системы Unix. Стоимость 60 Гц все еще появляется в некоторых программах интерфейсы в результате. Эпоха тоже отличается от текущего значения. в первое издание руководство программиста Unix датированный 3 ноября 1971 года, определяет Unix time как " время с 00:00:00, Январь. 1 1971, измеряют в шестидесятых секунда."

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

но это не говорит, Почему именно 1/1/1970 был выбран в конце концов.

примечательные выдержки из Википедии:

The первое издание руководство программиста Unix датировано 3 ноября 1971 года определяет время Unix как " время с 00: 00: 00, Jan. 1, 1971, измеряется в шестидесятых секундах".

из-за [ограниченного] диапазона эпоха была пересмотрел еще раз, прежде чем скорость была изменена на 1 Гц и эпоха была установлена на ее текущее значение.

несколько более поздних проблем, включая сложность настоящего определения, являются результатом того, что время Unix было определено постепенно с помощью использования, а не полностью определен для начала.

короткий ответ: почему бы и нет?

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

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