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 поддерживает три формата установки времени:
  1. [[[ВВ]ГГ]ММ]ДД]ччмм[.СС]

  2. ММДДччмм[ГГ]

  3. ДД [Месяц [[ВВ]ГГ [чч [мм [СС]]]]] [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).