gettimeofday (). это агностик для изменения в дневное время экономии времени? - PullRequest
1 голос
/ 04 августа 2010

если системное время изменяется на летнее время, изменяется ли вывод gettimeofday ()?

Ответы [ 2 ]

1 голос
/ 04 августа 2010

Обратите внимание, что системы Unix не "изменяют системное время" с помощью перехода на летнее время - это все , которые обрабатываются, когда программы хотят печатать текущее время, обычно используя localtime(3).

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

0 голосов
/ 25 февраля 2012

Компьютеры UNIX / linux используют время UNIX, которое является более или менее UTC, т.е. Гринвич Лондон.Только когда вы печатаете или отображаете время, оно конвертируется в местное время.Это делается путем обращения к настройке TIMEZONE.

В Linux база данных часовых поясов находится в / usr / share / zoneinfo - текущий часовой пояс определен в / etc / localtime.Этот файл обрабатывает переход на летнее время, поэтому преобразование при печати выполняется корректно.Обратите внимание, что часовой пояс обычно определяется по географическим и политическим причинам.

Ваша база данных часовых поясов будет периодически обновляться по мере того, как различные правительства и / или местные советы решат изменить свои настройки часового пояса или перехода на летнее время.Недавно в Самоа пропустили целый день в конце 2011 года. Если файлы TIMEZONE на любых локальных компьютерах Samoan UNIX / Linux были обновлены заранее, проблем не возникло бы.

Другими соображениями являются синхронизация времени NTP и дополнительные секунды.Если вы запускаете NTP-клиент для синхронизации вашего компьютера, то это «убивает» внутренние часы компьютера, либо ускоряя, либо замедляя его - обратите внимание, что обычно плохо идея установить время вручнуюиспользование команд date или rdate, так как это может вызвать скачок во времени и повлиять на программное обеспечение, которое использует тайм-ауты какого-либо рода.(Недавним примером была АТС Asterisk, которую я должен был обслуживать).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...