Почему я не могу изменить системное время на меньше, чем 1970?

Я хотел проверить, как определенное программное обеспечение реагирует, когда я изменяю дату своего компьютера. Но я не мог изменить системное время на что-то меньшее чем 1970. Почему это?

27
задан 9 March 2020 в 17:48

3 ответа

UNIX и совместимые POSIX системы кодируют системное время ("Время Unix"), поскольку число секунд протекло начиная с запуска эпохи Unix 1 января 1970 0:00:00 UTC, за исключением секунд прыжка, которые не считаются. Ограничение было наследовано от UNIX. 32-разрядные значения означали, для получения разумной степени точности, День Зеро должен был быть достаточно близким, так, чтобы устраненное возвращение к 0 нашей эры, или, более обоснованно, 5 780 лет и изменение, начиная с даты этого ответа было 10 Adar 5780 {g}.

28
ответ дан 17 March 2020 в 00:06

Из Википедии:

Время Unix (также известный как время Эпохи, время POSIX, секунды с Эпохи или времени Эпохи UNIX) является системой для описания момента времени. Это - число секунд, которые протекли с эпохи Unix, которая является 0:00:00 времени UTC 1 января 1970 минус секунды прыжка.

Также объяснение:

Linux следует традиции, установленной Unix подсчета времени в секундах начиная с его официального "дня рождения", - названный "эпохой" в вычислениях условий - который является 1 января 1970.

Более полное объяснение может быть найдено в этой статье Wired News. Это объясняет, что ранние инженеры Unix выбрали ту дату произвольно, потому что они должны были назначить универсальную дату для запуска времени, и Новый год, 1970, казался самым удобным.

13
ответ дан 17 March 2020 в 00:06

На UNIX (и Linux) система, счетчик в течение времени интерпретируется как неподписанное значение (milli) секунд, и нуль определяется как 1970-01-01T00:00:00.000 UTC. Если бы Вы хотите установить системное время на какую-либо дату прежде, которая, необходимо было бы назначить это в противоречии с отрицательной величиной – что-то, что не работает на неподписанное значение (поскольку это - неподписанный …).

Существует несколько объяснений вокруг, почему создатели UNIX выбрали, тот момент времени для 'Начинаются Эпохи', и у меня нет подсказки, какой корректен. Но их решение на 1970 является причиной, почему Вы не можете установить свою систему на более раннее время.

4
ответ дан 17 March 2020 в 00:06

Другие вопросы по тегам:

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