URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 69943
[ Назад ]

Исходное сообщение
"Правильная настройка времени"

Отправлено АндрейМ , 31-Окт-06 15:35 
Добрый день!
При настройке юниксов, когда я настраивал текущий часовой пояс, при выводе команды date я получал правильные дату и время. Однако, при получении текущей даты и времени в программах на Си или PHP я получал время, сдвинутое на 3 часа назад (т.е. время по Лондону). В свое время я решил эту проблему тем, что установил Лондонский часовой пояс, и время bios'a, программки date и при  получении в собственных программах стало совпадать.
Но теперь я решил настроить синхронизацию времени по ntp, и время стало синхронизироваться неправильно, со сдвигом в 3 часа.
В связи с этим у меня такой вопрос: как правильно настраивается время на UNIX-серверах?
Правильно ли я понял, что в биосе надо устанавливать не текущее время, а Лондонское, т.е. сдвинутое на 3 часа назад, а при получении времени в программах на Си или PHP надо всегда к нему прибавлять сдвиг в 3 часа?

С уважением, Андрей


Содержание

Сообщения в этом обсуждении
"Правильная настройка времени"
Отправлено lavr , 31-Окт-06 16:37 
>Добрый день!
>При настройке юниксов, когда я настраивал текущий часовой пояс, при выводе команды
>date я получал правильные дату и время. Однако, при получении текущей
>даты и времени в программах на Си или PHP я получал
>время, сдвинутое на 3 часа назад (т.е. время по Лондону). В
>свое время я решил эту проблему тем, что установил Лондонский часовой
>пояс, и время bios'a, программки date и при  получении в
>собственных программах стало совпадать.
>Но теперь я решил настроить синхронизацию времени по ntp, и время стало
>синхронизироваться неправильно, со сдвигом в 3 часа.
>В связи с этим у меня такой вопрос: как правильно настраивается время
>на UNIX-серверах?
>Правильно ли я понял, что в биосе надо устанавливать не текущее время,
>а Лондонское, т.е. сдвинутое на 3 часа назад, а при получении
>времени в программах на Си или PHP надо всегда к нему
>прибавлять сдвиг в 3 часа?

вы в Си и возможно в php не теми функциями пользовались или неправильно.

Поищите в документации, в handbook скорей всего сколько об этом упомянуто, а в FAQ'е
точно должно быть.
Можете воспользоваться контрольными словами: adjkerntz и tzsetup
и в дополнение:

# man adjkerntz
# man tzsetup

Заодно разберетесь с localtime и UTC(Coordinated universal time, оно же GMT - те по Гринвичу greenwich mean time) и разницей между ними.

>С уважением, Андрей