Как компьютеры узнают, когда время изменилось?


15

В моей стране официальное время меняется в первый месяц весны и осени. Когда меняется официальное время, меняются и часы моего мобильного телефона и ПК.

Как эти устройства узнают, что есть изменения?


Вау. летнее время в течение полугода
mcalex

2
Компьютер знает, который час? И вы знаете, на какую дату летнее время должно измениться, верно? Поэтому написать в ОС строку кода, в которой говорится, что if (date=DST_START) then hour=hour+1 else if (date=DST_END) then hour=hour-1обычно этого достаточно, но если правила меняются (например, в Северной Америке в 2007 году), вам необходимо загрузить обновление ОС. Кроме этого, единственный недостаток заключается в том, что если системные часы неправильные (например, разряженная батарея материнской платы), то он не может знать, когда нужно изменить время (но это не имеет значения, так как вам все равно нужно установить дату и время).
Synetech

Ответы:


20

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

В качестве альтернативы, некоторые устройства могут связываться с удаленным сервером (они, скорее всего, все равно делают это все время) или использовать какой-либо другой вид встроенной временной метки (например, вещание как часть видеотекста / ceefax или данных DVB, когда речь идет о телевизионных программах и приемники / записывающие / телевизоры).

Изменить: Просто упомянуть об этом: Старые версии Windows (например, Windows 95 или Windows 98) никогда не доверяли своей собственной оценке, поэтому они всегда говорили пользователю проверять правильное время после его изменения. Windows Vista и Windows 7 (не уверен насчет версий между ними) больше не делают этого и просто предполагают, что они правы (в дополнение к использованию сервера времени для синхронизации часов).


NTP не содержит информации о летнем времени или часовых поясах. Он просто устанавливает текущее время в UTC. Клиент должен отдельно применять правила, соответствующие их часовому поясу, используя базу данных Olson или эквивалентную. Служба времени Windows, по-видимому, реализует только NTP без возможности распространения обновленных правил о часовых поясах: technet.microsoft.com/en-us/library/cc773061(v=ws.10).aspx
dhasenan

Итак, NTP можно использовать только для определения того, находятся ли локальные часы все еще / уже на DST в случае, если система считает, что необходимо выполнить настройку (например, после возврата к резервной копии). Но да, звучит логично, учитывая, что UTC / GMT + 0 никогда не меняется. Переделал это предложение немного.
Марио

7

Linux использует базу данных часовых поясов IANA, чтобы знать, когда изменяется летнее время. Другая история для Windows по ряду причин. Во-первых, Windows использует RTC по местному времени, а Linux - по UTC. Представьте, что DST меняется на Windows. Это позволяет «создавать» файлы в будущем и может вызвать некоторые проблемы. Кроме того, старые Windows по-разному относятся к DST, потому что тогда были другие правила DST, и Microsoft больше не предоставляет обновления для этих версий Windows, поэтому они не могут теперь вносить изменения в правила DST.

Подробнее об этом здесь: http://en.wikipedia.org/wiki/Daylight_saving_time#Computing


2

Проще говоря, ваша ОС проводит обновление, чтобы отрегулировать время.

Windows делает это через Windows Update , а Linux - через файлы часовых поясов .


Не совсем верно для Windows, по крайней мере, для старых версий. Windows может рассчитать это самостоятельно (аналогично Linux), но это что-то требует обновления из-за отсутствия правил (как вы связали).
Марио

1

Мобильные телефоны успевают обновлять время по сети. Аналогично, в случае с Windows, он обновляется через Интернет. Это работает, только если вы выбрали автоматическое обновление времени. Вы можете проверить настройки даты и времени на своем мобильном телефоне или ПК. введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.