date
Просмотр или установка
даты и времени (POSIX)
Синтаксис:
Просмотр даты и времени:
date [-tuv]
[-s seconds] [+format]
Установка даты и времени:
date [-uv] [-S
seconds] date
Поддерживаемые
платформы:
QNX Neutrino, Linux, Microsoft
Windows
Опции:
-S seconds
Установить максимальное число секунд реального
времени, в течение которого утилитой date может корректировать время. Утилита date не повышает тактовую частоту более чем
на 100% и не снижает ее более чем на 50%. Если утилите date не удается выполнить плавную
корректировку с такими ограничениями, время изменяется
мгновенно. (Значение по умолчанию равно 300 секундам; для
отключения плавной корректировки используется опция -S0).
-s seconds
Отобразить
эту дату в виде строки с числом секунд, прошедших с начала эры
Unix (00:00, 1 января 1970 г.). Это значение используется в
качестве числа секунд вместо значения системного времени.
-t
Отобразить
текущее время операционной системы в секундах от начала эры
Unix, в форме длинного целого числа.
-u
Выполнить
операции с использованием всемирного координированного времени
(Coordinated Universal Time, UTC) вместо местного времени. UTC
–стандартный термин, означающий среднее время по Гринвичу
(Greenwich Mean Time, GMT).
-v
Вывести расширенную
информацию.
date
Значение для установки даты. Изменение даты доступно
только суперпользователю (root). Для получения
дополнительной информации см. раздел "Установка даты" далее.
+format
Формат отображения даты и
времени.
Описание:
Утилита date используется для просмотра и установки
текущей системной даты и времени в программном обеспечении.
Установку времени с использованием утилиты date может выполнять только суперпользователь
(root).
Отображение даты
Обычно утилита
date отображает текущую дату и
время согласно внутреннему времени операционной системы, которое
отсчитывается в программном обеспечении как количество секунд,
прошедших с начала эры Unix (00:00, 1 января 1970 г.). Если
указана опция -s секунды, то вместо
текущего времени ОС утилитой date используется
значение аргумента seconds.
Формат и
содержание отображаемой даты и времени можно установить с
помощью аргумента +format. Значение format состоит из
ASCII-символов и спецификаторов полей, начинающихся с символа %, аналогично спецификатору формата printf() в языке C (однако
типы полей в данном случае обозначаются абсолютно другими
символами). При выводе каждое описание поля заменяется на
соответствующее значение; остальные символы копируются в
выходные данные без изменений.
Примечание. Этой утилитой используется
функция strftime() библиотеки libc, которая преобразует значение времени в
строку. Полный список спецификаторов полей, доступных для
использования в аргументе +format, см. в разделе strftime() в руководстве по
библиотекам Library Reference.
Выходная
строка утилиты date всегда
завершается символом новой строки.
Установка даты
С помощью
утилиты date системный
администратор с учетной записью root может устанавливать системное время. Для
синхронизации аппаратных часов с текущим системным временем,
установленным с помощью утилиты date, можно использовать утилиту rtc.
Примечание. При
установке даты в период перехода часового пояса с летнего времени
на поясное время следует соблюдать осторожность. При изменении
времени в часовом поясе на поясное местное время уменьшается на
один час (например, вместо 2:00 ночи устанавливается 1:00 ночи). В
течение этого часа местное время оказывается неопределенным
(например, момент 1:14 ночи в процессе перехода часового пояса на
летнее время возникает в течение ночи дважды). Во избежание
проблем при установке даты в этот период следует использовать
время UTC.
По умолчанию, если новое
время находится в диапазоне
(-2,5
минут + старое время, 5
минут + старое время),
то утилита date выполняет "плавную корректировку", т.е.
повышение скорости отсчета времени на менее 100% или ее снижение
менее чем на 50% на период от 1 секунды до 5 минут, до
приведения часов в соответствие с новым временем. Эта плавная
корректировка не вызывает существенных колебаний в отсчете
времени. Плавную корректировку можно деактивировать с помощью
опции -S0.
Утилита date поддерживает три формата установки
времени:
-
[[[ВВ]ГГ]ММ]ДД]ччмм[.СС]
-
ММДДччмм[ГГ]
-
ДД [Месяц [[ВВ]ГГ [чч [мм [СС]]]]] [am|pm]
где:
ВВ
Столетие (например, 19, если
указывается 1997 год)
ГГ
Последние две цифры года
(например, 97, если указывается 1997 год)
ММ
Номер месяца в году (январь –
01, февраль – 02 и т.д.)
Месяц
Номер месяца (1, 2,...12) или
стандартное английское сокращение названия месяца (jan,
feb,...dec)
ДД
День месяца
чч
Час дня
мм
Минута в часе
СС
Секунда в минуте
am|pm
До полудня (am) или после
полудня (pm); эти значения
можно использовать вместо ввода в 24-часовом формате, при этом
значение часов должно быть меньше 13
Формат 1
совместим с утилитой touch. Каждое поле
содержит две цифры, поэтому перед одноразрядными числами
следует добавлять 0. Этот формат оптимален для корректировки
времени дня, так как он имеет минимальную форму ччмм (часы и
минуты).
Формат 2
соответствует соглашениям по формату дат в System V UNIX. Он
аналогичен формату 1 с указанием месяца и дня, но в данном
случае год можно указывать в конце параметра вместо начала.
Если в дате присутствует точка (.), то такая дата рассматривается утилитой
date как указанная в
формате 1 (не в формате 2). Кроме того, форматы ММДДччммГГ (формат 2) и ГГММДДччмм (формат 1)
различаются утилитой date по значению
первой пары цифр. Годы 00-12 относятся ко времени до начала
эры Unix. Поэтому в случае, если первая пара цифр находится в
этом диапазоне, дата считается указанной в формате 1.
Формат 3
соответствует соглашениям по формату дат в QNX 4.00 и более
ранних. Использование этого формата предполагается при наличии
более одного операнда (дата в остальных двух форматах имеет
форму непрерывной строки цифр), или если указано только одно
число из двух или менее цифр.
При
изменении даты и времени утилита date добавляет строку в файл /var/log/wtmp, если он существует.
Примечание. Если файл /var/log/wtmp не существует, то утилита date его не создает. Размер этого файла
может быстро увеличиться, что негативно влияет на встраиваемую
систему ввиду ограниченности ее ресурсов.
Примеры:
Просмотр даты и времени в
отдельных строках:
$ date "+DATE:
%m/%d/%y%nTIME: %H:%M:%S"
DATE: 01/20/99
TIME: 08:51:59
Просмотр времени в 12-часовом
формате:
$ date "+TIME: %r"
TIME: 01:36:32 PM
Установка системной даты 22
февраля 1997 г.:
date 22 2 97
Установка системной даты и
времени 16 мая 1997 г., 4:30 после полудня:
date 16 may 1997 4 30 pm
Перевод системного времени на
4:34 после полудня, дата текущая:
date 1634
Следующая команда содержит пример использования опции
date -s; по этой
команде выводится дата последней записи в файле /usr/adm/syslog (первый столбец
каждой записи в этом файле содержит время в секундах с начала
эры Unix):
$ date -s `tail -n1
/usr/adm/syslog | cut -f1 -d ' '`
Wed Apr 15 14:25:49 EDT 1997
Для получения
дополнительной информации см. разделы cut, logger и tail.
Файлы:
/var/log/wtmp
Если этот файл существует, то
при изменении даты или времени в него добавляется запись об этом
изменении.
Переменные среды:
TZ
Местный часовой пояс. От
значения TZ зависит преобразование между временем
системных часов (UTC) и местным временем.
Статус
завершения:
0
Дата успешно отображена или
установлена.
>0
Возникла
ошибка.
Предупреждения:
Формат
некоторых из спецификаторов полей не определен при
использовании настроек, отличных от настройки локализации в
POSIX. Как следствие, синтаксический анализ вывода утилиты date в другой настройке локализации может
быть затруднен. В QNX Neutrino в настоящее время
поддерживается только настройка локализации POSIX (т.е. C).