Поддержание точной даты в системе Linux – один из основных навыков, которым должен владеть любой пользователь Linux.
Команда Linux date используется для отображения и установки настроек даты и времени в системе Linux.
Это руководство дает вам представление о том, как можно использовать команду date для отображения и установки даты в вашей системе Linux.

Базовый синтаксис команды date представлен ниже:
- 1) Команда date без параметров
- 2) Отображение даты и времени в формате UTC
- 5) Использование команды date, чтобы проверить будущие даты
- 7) Как установить дату и время
- How to Find and Set Local Timezone in Linux
- How to Set Time and Date in Linux
- Set Date and Time in Linux
- How to Find and Set Hardware Clock in Linux
- Synchronizing Linux System Clock with a Remote NTP Server
- Summary
- Настройка часового пояса
- Получение списка NTP серверов по DHCP
- Служба синхронизации времени
- Ещё один способ задать часовой пояс
1) Команда date без параметров
В своей базовой форме, без каких-либо параметров команды, команда date отображает текущую дату и время, включая день недели, месяц, год, время в формате чч: мм: сс и часовой пояс, как показано ниже.
2) Отображение даты и времени в формате UTC
Чтобы отобразить время в формате UTC (всемирное координированное время), ранее называвшееся GMT (среднее время по Гринвичу), добавьте параметр -u.
$ date —date=»10/10/2021″
Sun Oct 10 00:00:00 IST 2021
$
Команда date также может выводить дату и время в прошлом относительно вашей текущей даты.
Например, чтобы проверить дату 9 дней назад, выполните команду.
$ date —date=»9 days ago»
Fri Apr 30 15:45:28 IST 2021
$
Чтобы просмотреть дату двумя неделями ранее, выполните команду:
$ date —date=»3 years ago»
Wed May 9 15:49:04 IST 2018
$
5) Использование команды date, чтобы проверить будущие даты
Так же, как вы можете проверять прошлые даты, команда date также позволяет отображать будущие даты.
Например, чтобы узнать дату завтрашнего дня:
$ date —date=»tomorrow»
Mon May 10 15:50:14 IST 2021
$
Команда date имеет множество опций, позволяющих настроить вывод даты.
Ниже перечислены некоторые из доступных вариантов форматирования.
Например, чтобы вывести в формате гг / мм / дд, запустите
$ date «+%A %B %Y %T»
Sunday May 2021 15:55:56
$
7) Как установить дату и время
Команда date также позволяет вам установить дату и время.
Например, чтобы установить дату и время на 25 июня 2021 года в 11:15, выполните команду:
In this article, we will show you how to quickly get accurate server time in CentOS distribution. Normally, if you have installed CentOS with a desktop environment, the easiest way to configure your computer to synchronize its clock with a remote server via the GUI “Enable Network Time Protocol” feature.
However, some times the above feature fails to work as expected. In this article, we will show you a straightforward way to set a accurate server time via the command line.
Read Also: Setting Up “NTP (Network Time Protocol) Server” in RHEL/CentOS 7
We can do this using the ntp and ntpdate command line utility, which sets system date and time via NTP. If you do not have this package installed on your system, run the command below to install it:
# yum install ntp ntpdate
# systemctl start ntpd
# systemctl enable ntpd
# systemctl status ntpd

Start NTP Service
Then run the ntpdate command below to add the specified CentOS NTP servers. Here, the -u switch tells ntpdate to use an unprivileged port for outgoing packets and -s enables for logging output from the standard output (default) to the system syslog facility.
# ntpdate -u -s 0.centos.pool.ntp.org 1.centos.pool.ntp.org 2.centos.pool.ntp.org
Next, restart the ntpd daemon to synchronize CentOS NTP server date and time with your local date and time.
# systemctl restart ntpd
Now check using the timedatectl command if NTP synchronization is enabled and if it is actually synchronized.
# hwclock -w
# man ntpdate
# man hwclock
If you read this far, tweet to the author to show them you care. Tweet a thanks
The timedatectl command is a new utility for RHEL/CentOS 7/8 and Fedora 30+ based distributions, which comes as a part of the systemd system and service manager, a replacement for old traditional date command used in sysvinit daemon based Linux distributions.

Use timedatectl to Set System Time, Date, and Timezone in Linux
The timedatectl command allows you to query and change the configuration of the system clock and its settings, you can use this command to set or change the current date, time, and timezone or enable automatic system clock synchronization with a remote NTP server.
In this tutorial, am going to take you through the ways you can manage time on your Linux system by setting the date, time, timezone, and synchronize time with NTP from the terminal using the new timedatectl command.
How to Find and Set Local Timezone in Linux
# timedatectl status
Check Time and Date
In the screencast above, RTC time is the hardware clock time.
Check Linux Time Zone
3. To view all available timezones, run the command below:
# timedatectl list-timezones
List All Timezones in Linux
Find Local Timezone in Linux
5. To set your local timezone in Linux, we will use the set-timezone switch as shown below.
# timedatectl set-timezone «Asia/Kolkata»
Set Local Timezone in Linux
It is always recommended to use and set the coordinated universal time, UTC.
# timedatectl set-timezone UTC
Set UTC Time in Linux
Set Correct Timezone in Linux
How to Set Time and Date in Linux
To set time only, we can use a set-time switch along with the format of time in HH:MM:SS (Hour, Minute, and Seconds).
# timedatectl set-time 15:58:30
Set Local Time in Linux
You may get the below error when setting the date as shown above:
Failed to set time: NTP unit is active
7. The error says that the NTP service is active. You need to disable it using the below command.
# systemctl disable —now chronyd
Set Date and Time in Linux
8. To set date and time, we can use a set-time switch along with the format of date in YY:MM:DD (Year, Month, Day) and time in HH:MM:SS (Hour, Minute, and Seconds).
# timedatectl set-time ‘2015-11-20 16:14:50’
Set Date in Linux
Set Date and Time in Linux
How to Find and Set Hardware Clock in Linux
First Find out if your hardware clock is set to local timezone:
Set your hardware clock to local timezone:
# timedatectl set-local-rtc 1
Set Hardware Clock Timezone
Set your hardware clock to coordinated universal time (UTC):
# timedatectl set-local-rtc 0
Set Hardware Clock to UTC
Synchronizing Linux System Clock with a Remote NTP Server
NTP stands for Network Time Protocol is an internet protocol, which is used to synchronize the system clock between computers. The timedatectl utility enables you to automatically sync your Linux system clock with a remote group of servers using NTP.
Please note that you must have NTP installed on the system to enable automatic time synchronization with NTP servers.
# timedatectl set-ntp true
# timedatectl set-ntp false
Summary
If you have anything to say about this article, feel free to leave a comment for any more information to add. Stay connected to Tecmint.
В статье мы разберёмся с тем, как настроить время в Linux. Посмотрим текущее время, укажем часовой пояс и настроим синхронизацию времени.
Чтобы посмотреть текущее время на вашем сервере linux воспользуйтесь командой date:
В выводе мы видим не только дату и время, но также и часовой пояс. Сейчас вместо часового пояса используется UTC.
Также можно использовать другую команду — timedatectl:
Без опций она покажет текущее время, часовой пояс, а также другую информацию связанную с синхронизацией времени. Например в примере выше видно что время успешно синхронизуется (System clock synchronized: yes) и синхронизация настроена (NTP service: active).
С помощью этой же утилиты (timedatectl) мы будем настраивать часовой пояс и следить за синхронизацией времени, об этом чуть ниже.
Настройка часового пояса
Вообще часовой пояс в системе определяется файлом /etc/localtime, который является символьной ссылкой (про ссылки я уже писал):
Можно вручную отредактировать эту ссылку и указать нужный часовой пояс:
Или воспользоваться утилитой timedatectl:
Если вас не устраивает выбранный мною часовой пояс, то можете посмотреть список поддерживаемых часовых поясов так:
Проверим время и часовой пояс:
Как видим, часовой пояс уже изменился на Europe/Moscow (MSK, +0300).
В настоящее время очень важно чтобы часы на ваших серверах были синхронизированы. Очень много систем полагаются на время, например:
Получение списка NTP серверов по DHCP
Если ваш сервер получает сетевые настройки по dhcp, то он может получить список NTP серверов (серверов времени для синхронизации). Это настраивается в файле /etc/dhcp/dhclient.conf. В строке request мы определяем что хотим получать от сервера dhcp. И здесь может быть указан параметр ntp-servers:
Само собой, вы получите список ntp-серверов, только в том случае если ваш dhcp сервер их распространяет.
Служба синхронизации времени
В системах работающих на systemd работает специальная служба синхронизации времени systemd-timesyncd.service. Можем посмотреть её статус:
Видим что синхронизация идет с сервером по адресу 192.168.0.16. У меня этот адрес прилетел по dhcp.
Обратите внимание, что служба эта стартует по запросу и останавливается после синхронизации времени!
Давайте выключим получение ntp серверов по dhcp:
Вы можете использовать следующий пул серверов времени для синхронизации — https://www.pool.ntp.org/zone/ru. Укажем первый сервер из этого пула в конфиге /etc/systemd/timesyncd.conf:
В конфиге используются следующие опции:
После правки перезапустите службу синхронизаций времени:
Дополнительно можно посмотреть информацию по синхронизации времени с помощью следующей команды:
Здесь мы видим адрес ntp-сервера, а также какой интервал синхронизации (34min 8s) использовался последний раз.
То-есть служба синхронизации времени systemd-timesyncd.service будет запускаться и останавливаться сейчас примерно раз в 34 минуты. Поэтому если увидите, что служба в состоянии loaded и inactive, не пугайтесь. По логам видно что она периодически запускается:
Ещё один способ задать часовой пояс
С помощью команды dpkg-reconfigure tzdata также можно задать часовой пояс:
После выполнения вы можете использовать псевдографический интерфейс для настройки часового пояса. Вначале выберите географический район:

dpkg-reconfigure tzdata — выбор географического района

dpkg-reconfigure tzdata — выбор города
Теперь вы знаете как настроить время на сервере Debian или Ubuntu. Мы научились устанавливать часовой пояс и настраивать синхронизации времени с ntp серверами.
Узнали про следующие команды:
Познакомились с файлами:
Узнали про службу синхронизации времени:

Дата, время и часовой пояс в Linux

