# clock

С помощью команды clock можно получить и преобразовать значение времени.

          clock option ?arg arg...?

## ОПИСАНИЕ

Команда выполняет одно из перечисленных ниже действий, с помощью которых можно получить и преобразовать строки или значения, являющиеся той или иной формой записи времени. Параметр option определяет выполняемое командой действие, одно из следующего списка (параметр может быть сокращен):

clock clicks
  Возвращает целое число, с высокой точностью представляющее машинное время. Единица измерения зависит от операционной системы и компьютера и представляет собой минимальную доступную величину, например, счетчик циклов процессора. Эта величина может использоваться только для относительного измерения пройденного времени.
clock format clockValue ?-format string? ?-gmt boolean?

  Переводит целое число, возвращаемое командами clock seconds, clock scan или командами file atime, file mtime и file ctime в удобочитаемую форму. Если в команде присутствует аргумент -format, следующий аргумент должен быть строкой, описывающей формат представления времени. Строка состоит из описаний полей, состоящих из символа % и буквы. Все остальные символы в строке просто копируются в результат. Ниже перечислены допустимые описания полей.

  %% | вставляет %
  %a | сокращенное название дня недели (Mon, Tue, etc.).
  %A | полное название дня недели (Monday, Tuesday, etc.).
  %b | сокращенное название месяца (Jan, Feb, etc.).
  %B | полное название месяца.
  %c | локальные дата и время.
  %d | день месяца (01 - 31).
  %H | часы в двадцатичетырехчасовом формате (00 - 23).
  %I | часы в двенадцатичасовом формате (00 - 12).
  %j | день года (001 - 366).
  %m | номер месяца (01 - 12).
  %M | минуты (00 - 59).
  %p | AM/PM индикатор (до/после полудня).
  %S | секунды (00 - 59).
  %U | неделя года (01 - 52), Воскресенье - первый день недели.
  %w | номер дня недели (Воскресенье = 0).
  %W | неделя года (01 - 52), Понедельник первый день недели.
  %x | локальный формат даты.
  %X | локальный формат времени.
  %y | год без столетия (00 - 99).
  %Y | год со столетием (например, 1990)
  %Z | имя часового пояса.
  Кроме того, в некоторых операционных системах могут поддерживаться
  %D | дата в формате %m/%d/%y.
  %e | день месяца (1 - 31), без нулей впереди.
  %h | сокращенное имя месяца.
  %n | новая строка.
  %r | время в формате %I:%M:%S %p.
  %R | время в формате %H:%M.
  %t | табуляция.
  %T | время в формате %H:%M:%S.

  Если аргумент -format не задан, используется формат %a %b %d %H:%M:%S %Z %Y. Если задан аргумент -gmt, следующий аргумент должен быть булевой величиной. Значение true означает, что используется время по Гринвичу, значение false означает, что используется время по локальному часовому поясу, который задан для операционной системы.

clock scan dateString ?-base clockVal? ?-gmt boolean?

  Переводит дату dateString в целое число (см. clock seconds). Команда может перевести в число любую стандартную строку, содержащую время и/или дату, включая название часового пояса. Если строка содержит только время, предполагается текущая дата. Если название часового пояса не указано, предполагается локальный часовой пояс (если значение опции -gmt не равно true. В этом случае предполагается, что время задано по Гринвичу).

  Если в команде указан флаг -base, следующий аргумент должен содержать время в виде целого числа. По этому числу определяется дата и используется вместо указанной в строке или текущей. Такая возможность полезна при необходимости перевести в целое число время на заданную дату.

  Аргумент dateString должен состоять из одной или более спецификаций следующих видов:

  time | Время суток в форме: hh?:mm?:ss?? ?meridian? ?zone? или в форме hhmm?meridian? ?zone?, где meridian - индикатор AM или PM, zone - имя часового пояса. Если индикатор meridian не определен, hh считается числом часов в двадцатичетырехчасовом формате.

  date

  Месяц, день и, возможно, год. Допустимые форматы mm/dd?/yy?, monthname dd?, yy?, dd monthname?yy? и day, dd monthname yy. По умолчанию год считается текущим годом. Если год меньше 100, то года 00-38 считаются годами в диапазоне 2000-2038, а года 70-99 считаются годами в диапазоне 1970-1999. Года 39-70 могут быть недопустимыми на некоторых платформах. Для тех платформ, для которых они определены, они считаются годами в диапазоне 1939-1999.

  relative time | Время относительно текущего момента. Формат - число единица измерения. Возможные единицы измерения year, fortnight, month, week, day, hour, minute(или min), и second (или sec). Единицы измерения могут указываться во множественном числе, например 3 weeks. Кроме того, могут использоваться модификаторы: tomorrow, yesterday, today, now, last, this, next, ago.

  Реальная дата вычисляется в следующей последовательности. Сначала определяется абсолютная дата и/или время, которые переводятся в целое число. Это число используется как базис, к которому добавляется заданный день недели. Далее используется относительное время. Если задана дата, а время (абсолютное или относительное) отсутствует, считается, что это полночь. И последним шагом производится коррекция вычисленной даты, при которой учитываются летнее время и число дней в различных месяцах.

clock seconds
  Возвращает время в секундах от начала "эпохи". Может использоваться для вычисления разности времен. "Эпоха" зависит от используемой операционной системы и компьютера.