System time/ru

The system time backed by the system clock is used in Unix systems to keep track of time. It can be set by a hardware clock or by an external time server.

Программные и аппаратные часы
Системные часы, предоставляемые ядром, реализуются простым подсчетом числа секунд, прошедших с 1 января 1970 года 00:00:00 UTC по настоящее время. Это число называется Unix-время.

Аппаратные часы, также известные как часы реального времени (real-time clock или RTC), обычно представляют из себя элемент материнской платы. Они работают все время, независимо от состояния операционной системы, даже когда компьютер выключен.

UTC или местное время
Настройка времени аппаратных часов отображать время одного из двух стандартов: локальное время или Всемирное координированное время (UTC). Локальное время — это реальное время часового пояса, учитывающее переход на летнее время. Предпочтительно использовать UTC, поскольку системное время вычисляется посредством прибавления к нему разницы времени часового пояса с учётом летнего времени. Благодаря этому перевод часов на летнее время учитывается автоматически, а изменение часового пояса возможно без изменения значения аппаратных часов. Исключение может быть сделано при использовании систем с двойной загрузкой, когда одна операционная система не поддерживает или не настроена на аппаратные часы с UTC (по умолчанию Windows настроена на использование локального времени).

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

OpenRC
Часовые пояса находятся в каталоге в. Не используйте часовые пояса, так как их имена не означают ожидаемый пояс. Например, на самом деле является GMT+8. Для местного времени следует указывать часовой пояс «localtime».

После выбора нужного часового пояса укажите его в файле. Например, для Германии, следует добавить следующее:

При каждом обновлении пакета информация из этого файла будет использоваться для копирования выбранного часового пояса в файл. Чтобы настроить этот файл вне обновления, запустите следующую команду:

systemd
В systemd существует команда для настройки часового пояса:

Проверка текущего часового пояса:

Чтобы увидеть список доступных часовых поясов:

Чтобы изменить часовой пояс, пример для Германии:

LC_TIME
This environment variable defines formatting of dates and times. For more details see The GNU C Library

Системный часы
Typically the system clock time is set up by the hardware clock on boot. Alternatively it is possible to manually set the system clock or use a network time server.

Можно использовать команду для настройки системного времени:

Для проверки текущего времени программных часов:

Чтобы установить системные часы например в 12:30, Dec. 17, 2012:

Сервер времени
Смотрите статью NTP для информации по использованию сервера времени.

systemd
systemd предоставляет команду для настройки системного времени:

Для проверки текущего времени программных часов:

Чтобы установить системное время:

Аппаратные часы
To have a hardware clock, the following kernel options must be activated:

Чтобы узнать время аппаратных часов:

Чтобы установить время аппаратных часов в соответствии с системным временем:

Синхронизация аппаратных часов и системного времени
Typically the hardware clock is used to setup the system clock on boot. This can be done by the kernel itself or by a boot service (init script). Also on shutdown the kernel or a service can write the software clock to the hardware clock. This aids the system in having the correct time on boot.

In-kernel method
On a sufficiently modern kernel (3.9 or newer), Linux can be configured to handle setting the system time automatically. To do so, also the Set system time ... and Set the RTC time ... drivers need to be activated:

Please not that Set the RTC time based on NTP synchronization is not used by some NTP implementations. Supported NTP implementations include: (more information here) and  (more information in the NTP article). OpenNtpd does not support setting the hardware time and therefore should be avoided.

To check if the hardware time is updated, run:

The 64 bit of the reported number should be unset (0). More information in hwclock man pages (search '11 minute mode').

OpenRC
When using OpenRC the init script can set the system clock on boot and sync system time to the hardware clock on shutdown. The service is enabled by default and should be disabled in favor of the above mentioned in-kernel method. The script should not be run when using the kernel's real time clock.

Однако, если есть необходимость синхронизации времени с помощью OpenRC, то установите  напротив   и     в файле. По умолчанию служба настроена на стандарт UTC. Чтобы изменить на стандарт местного времени (localtime) необходимо добавить.

Restart the service and have the hardware clock init script run on system boot:

Systemd
systemd can be used to set the system clock on boot. Use to manage the hardware clock:

Для проверки текущего времени аппаратных часов:

Чтобы установить аппаратные часы в соответствии с системным временем (в стандарте времени UTC):

Чтобы установить аппаратные часы в соответствии с системным временем (в стандарте времени localtime (местное время)):

Смотрите также

 * NTP - Another way to manage system time is through the network time protocol.

Ссылки

 * http://lifehacker.com/5742148/fix-windows-clock-issues-when-dual-booting-with-os-x - Dual booting with MS Windows, set RealTimeIsUniversal. Also tested with Windows 10.
 * http://tldp.org/HOWTO/Clock-2.html - The Clock Mini-HOWTO.