- Настройка даты и времени в Linux – команда date
- Синтаксис и основные опции
- Форматы ввода/вывода даты и времени
- Заключение
- Display Date And Time In Linux
- Syntax
- Display date and time in Linux using the timedatectl
- TZ environment variable
- GUI Tool: Time Administration
- How to change date and time settings with Gnome based Linux desktop
- Conclusion
- Команда date в Linux
- Синтаксис команды date
- Примеры использования date
- Выводы
Настройка даты и времени в Linux – команда date
Как это часто бывает, всё самое важное скрывается за самыми простыми вещами. Так и в случае с установкой/настройкой даты и времени в системе. Некорректные значения этих параметров запросто ломают логику работы многих приложений, особенно это касается тех систем, где на этом построены целые сервисы, такие как интернет-магазины, SCADA-системы на производстве и т. д. Поэтому так важно следить за корректными настройками времени, даты, языковых форматов, а также уметь все эти параметры настраивать. В системах Linux всё это позволяет выполнять команда date.
Синтаксис и основные опции
Согласно официальной информации, доступной из справочного руководства (команда man date), синтаксис команды date следующий:
Если дать команду date без аргументов или если аргументы начинаются с символа «+», то по-умолчанию будет выведено текущие значения даты и времени. В ином случае производится установка даты и времени, передаваемые в аргументах в каком-либо из форматов. Например, для установки времени введите команду
MM — Месяц
DD — День,
hh — часы в 24-часовом формате,
mm — минуты,
YYYY — 4 цифры года,
ss — секунды.
Прежде чем установить время проверьте правильность установки временной зоны.
Ниже мы боле подробно рассмотрим параметры ввода даты и времени.
Следующая команда выводит информацию о текущих дате и времени в форматированном виде:
Как видно, символ «+» позволяет печатать установленные (текущие) значения, а следующее за ним выражение задаёт формат вывода этих значений. Шаблон подстановки «%n» здесь служит для переноса строки. Все остальные шаблоны подстановки используются для выборки соответствующих компонент времени: месяцы, дни, часы, минуты и т. д. Само же выражение должно заключаться в кавычках, если в нём присутствуют пробельные символы.
Параметры CC, YY и .ss в синтаксисе date означают две последние цифры года, век и секунды (от 0 до 59) соответственно. И эти параметры не являются обязательными. Для того, чтобы устанавливать дату и время с помощью команды date, необходимы права суперпользователя.
В следующей таблице приводится описание основных опций команды date:
Опция | Значение |
-d, —date=STRING | Вычисляет день недели для заданной даты в качестве STRING. Дата задаётся в формате ггммдд. |
-f, —file=DATEFILE | То же самое, что и -d, но для исходных данных используется содержимое из файла FILE. |
-r, —reference=FILE | Определяет время последней модификации файла FILE. |
-s, —set=STRING | Устанавливает время/дату, заданные строкой STRING. |
-u, —utc, —universal | Использование формата |
Форматы ввода/вывода даты и времени
Для формата ввода даты/времени предусматриваются специальные элементы записи того или иного компонента даты/времени. В следующей таблице приводится описание этих элементов записи в виде пар букв, которым соответствуют составляющие даты и времени:
Элемент | Описание |
mm | Минуты — от 0 до 59. |
hh | Часы — от 0 до 23. |
DD | Дни — от 0 до 28, 29, 30 и 31. |
MM | Месяцы — от 01 до 12. |
Как уже можно было видеть, возвращаемые командой данные из её вывода можно форматировать произвольным способом, используя для этого специальные шаблоны подстановки или параметры форматирования. Они служат, как уже было отмечено выше, для выборки требуемых компонентов данных даты/времени из вывода команды date. Список этих параметров довольно длинный, но при этом его легко запомнить, поскольку наименования параметров довольно логичны. Следующая таблица отражает самые основные и часто используемые параметры форматирования:
Узнать время последнего изменения какого-либо файла:
Узнать день недели по его дате:
Вообще, команду date очень активно используют программисты для написания программного кода приложений, работающих с датой/временем, а также при написании скриптов для автоматизации некоторых процессов. Например, для автоматического наименования фалов, в имени которых содержится подстрока с датой его создания:
В результате будет создана копия файла settings.php под именем settings.php_back-070319. В данном случае используется директива $( ) для задания имени файла. Нужно заметить, что данный приём — очень мощный инструмент при работе в командной оболочке Linux.
Заключение
В заключение следует отметить отличную гибкость и большие возможности простой консольной утилиты, доступной по команде date, которая на первый взгляд не представляется заслуживающей внимания. Однако, команда date – это яркий пример «маленькой, но очень эффективной программы» в UNIX-подобных системах.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Display Date And Time In Linux
H ow do I display date and time in Linux using the command line and GUI options?
To display date and time under Linux operating system using command prompt use the date command. It can also display the current time / date in the given FORMAT. We can set the system date and time as root user too.
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | No |
Requirements | Linux with the terminal application |
Est. reading time | 3 minutes |
Syntax
Open a terminal and type the following command:
date
You can format the date as follows in dd-mm-yy format:
date +»%d-%m-%y»
Simply display the current time:
date «+%T»
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
To print the date of the day before yesterday, run:
date —date=’2 days ago’
Want to see the day of year of Christmas in the current year? Try:
date —date=’25 Dec’ +%j
Display the current full month name and the day of the month:
date ‘+%B %d’
Display date and time in Linux using the timedatectl
Most modern Linux distro with systemd use the timedatectl command. It is used to query and change the system clock and its settings, and enable or disable time synchronization services. All you have to do is type the following command:
$ timedatectl
TZ environment variable
The TZ environment tells Linux what time zone you are in. Many times when you want to change your time zone temporarily. For example, you might want to print the current date and time in “America/Los_Angeles” timezone even though you are in “Europe/London”. So we can set TZ, give a command like as follows when using TCSH/CSH:
setenv TZ timezone
For BASH/KSH/SH (see export command:
TZ=timezone; export TZ
Another option:
TZ=»America/Los_Angeles» date
TZ=»Asia/Tokyo» date
Use the following command to print a list of all timezones:
timedatectl list-timezones
timedatectl list-timezones | more
## filter out data using the grep command/egrep command ##
timedatectl list-timezones | grep -i Hong_kong
timedatectl list-timezones | grep -i paris
timedatectl list-timezones | grep -E -i ‘paris|london|kolkata’
The TZ Environment Variable on Linux
GUI Tool: Time Administration
The Time Administration Tool allows you to set the time, date and timezone of your system, as well as setting any time server to synchronize your local time server. Type the following command to start time admin tool:
sudo time-admin
## OR ##
time-admin
Fig.01: Linux Date and Time Administration Tool
How to change date and time settings with Gnome based Linux desktop
First, you need to Settings in Activities and then click Details in the sidebar. Make sure you click Date & Time in the sidebar to open the panel:
Conclusion
In this quick tutorial, you learned about the date command that you can use to see or change the date/time under Linux operating systems. We further explained how to use the GUI tools too. The date command has many more options. See man page by typing the following man command:
$ man date
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
Команда date в Linux
Главное свойство утилит GNU/Linux — делать что-то одно, но эффективно. Яркий пример — команда date Linux, работающая с датой и временем. С её помощью можно извлекать любую дату в разнообразном формате, в том числе и рассчитывать прошлое и будущее время. Привилегированные пользователи могут перезаписывать системное время, используя её.
Утилита предустановлена во всех дистрибутивах GNU/Linux. В этой статье будут рассмотрены возможности date и способы применения этой команды.
Синтаксис команды date
Программа может выполнятся от имени обычного пользователя. Стандартный синтаксис команды (квадратные скобки обозначают необязательное наличие):
date [ ОПЦИИ ] . [ +ФОРМАТ ]
Ниже представлена таблица с часто применяемыми опциями для date.
Опция | Длинный вариант | Значение |
---|---|---|
-d STRING | —date=STRING | Вывод даты по указанной строке (например ‘yesterday’, ‘tomorrow’, ‘last monday’). |
-I | —iso-8601[=FMT] | Вывод даты в формате ISO 8601. FMT по умолчанию содержит ‘date’. Также может содержать ‘hourse’, ‘minutes’, ‘seconds’, ‘ns’ для отображения соответствующих значений и часовой пояс относительно UTC рядом с датой. |
—rfc-3339=FMT | Вывод даты в формате RFC 3339. FMT по умолчанию содержит ‘date’. Также может содержать ‘seconds’ и ‘ns’ для отображения секунд или наносекунд. | |
-r FILE | —reference=FILE | Вывод даты последней модификации указанного файла в формате по умолчанию. |
-u | —utc | Вывод UTC-даты |
Аргумент ФОРМАТ отвечает за форматирование вывода даты. Для его указания необходимо поставить знак «+» и написать нужную маску. Наиболее популярные форматы:
Формат | Значение |
---|---|
%% | Знак процента |
%a | День недели текущей локали в короткой форме («Чтв») |
%A | День недели текущей локали в длинной форме («Четверг») |
%b | Месяц года текущей локали в короткой форме в родительном падеже («янв») |
%B | Месяц года текущей локали в длинной форме в родительном падеже («января») |
%c | Дата и время текущей локали без указания часового пояса |
%С | Первые две цифры текущего года |
%d | Числовой день месяца с ведущим нулём |
%D | Дата в формате %m/%d/%y |
%e | День месяца; аналог %_d |
%F | Дата в формате %Y-%m-%d |
%h | Аналог %b |
%H | Часы (00..23) |
%I | Часы (01..12) |
%j | День года (001..366) |
%m | Месяц (01..12) |
%M | Минуты (00..59) |
%n | Новая строка |
%q | Квартал года |
%S | Секунды (00..59) |
%t | Знак табуляции |
%T | Время в формате %H:%M:%S |
%u | Числовой день недели; 1 — понедельник |
%x | Дата в локальном формате |
%X | Время в локальном формате |
%Z | Аббревиатура временной зоны |
Примеры использования date
Введем команду без параметров.
Будет отображена текущая дата и время в соответствии с настройками локали системы.
Команда date без параметров по умолчанию применяет маску %a %b %d %X %Z. Поскольку все форматы должны быть переданы как один параметр (из-за принципа обработки данных командным интерпретатором Bash), пробелы между ними необходимо экранировать обратным слэшем (\) или взять в кавычки.
Особое внимание следует уделить параметру -d (—date). Его функциональность не слишком очевидна, но при этом наиболее обширна.
Пример 1. Вычисление даты по числу секунд, прошедших с 1 января 1970 года.
Пример 2. Вычисление даты и времени следующего понедельника при указании часового пояса Нью-Йорка в 03:00.
date —date=’TZ=»America/New_York» 03:00 next mon’
Обратите внимание: указывать название дня недели или месяца можно в любом регистре, в короткой или длинной форме. Параметры next и last обозначают следующий и прошедший, соответственно, ближайшие дни недели.
Пример 3. Если текущий день месяца — последний, сформировать отчет о занятости дискового пространства корневого и домашнего каталога в файл report.
#!/bin/bash
if [[ $(date —date=’next day’ +%d) = ’01’ ]]; then
df -h / /home > report
Такой скрипт можно использовать для автоматизации работы с помощью демона crontab или anacron.
Выводы
Команда date Linux является эффективным инструментом работы с датой и временем, с широкой возможностью их расчёта для прошедших или будущих показателей. Также она применяется в написании сценариев в командном интерпретаторе Bash.
Источник