date

date — утилита Unix для работы с системными часами. Выводит текущую дату и время в различных форматах и позволяет устанавливать системное время.

Реализации

В разных операционных системах существуют различные варианты команды, отличающиеся параметрами:

Использование

При вызове команды без параметров выводит текущее время:

$ date
Sun Dec 6 15:33:24 MSK 2009

При вызове с параметром, который начинается с цифры, устанавливает системное время. Поскольку стандарт Single Unix Specification не описывает, как утилита date устанавливает время[1], разные операционные системы используют разные форматы для этого параметра: например, MMDDhhmm[[CC]YY][.ss] в Linux, [[[[[CC]YY]MM]DD]hh]mm[.ss] в FreeBSD и [[MMDD]hhmm|MMDDhhmm[CC]YY][.ss] в Solaris (где CC, YY, MM, DD, hh, mm, и ss означают столетие, год столетия, месяц, число, час, минуту и секунду). Следовательно,

$ date 1230100509.45 # в Linux и Solaris; или
$ date 0912301005.45 # в FreeBSD

устанавливает дату и время на 10:05:45, 30 декабря 2009.

При вызове с параметром, который начинается с +, параметр используется как строка форматирования вывода.

Строка форматирования вывода (первым символом должен быть +)
Спецификатор Описание Пример (локаль en_US) Пример (локаль ru_RU)
День
%aдень недели, сокр.SunВск
%Aдень недели, полныйSundayВоскресенье
%dчисло месяца (01—31)06
%eчисло месяца, дополненное пробелом ( 1—31) 6
%jдень года (001—366)340
%uдень недели (1—7, воскресенье = 7)7
%wдень недели (0—6, воскресенье = 0)0
Неделя
%Uномер недели (00—53, воскресенье — первый день недели)49
%Wномер недели (00—53, понедельник — первый день недели)48
%Vномер недели (01—53, понедельник — первый день недели)49
Месяц
%mномер месяца (01—12)12
%h или %bмесяц, сокр.DecДек
%Bмесяц, полныйDecemberДекабрь
Год
%yгод без столетия (00—99)09
%Cстолетие (00—99)20
%Yгод включая столетие2009
%g[2]год (без столетия) понедельника недели %V09
%G[2]год (включая столетие) понедельника недели %V2009
Дата
%D%m/%d/%y12/06/09
%xдата в формате текущей локали12/06/200906.12.2009
%F[2]%Y-%m-%d2009-12-06
Час
%l[2]час в 12-часовой системе, дополненный пробелом ( 1—12)  3
%Iчас в 12-часовой системе (01—12)03
%k[2]час, дополненный пробелом ( 0—23)15
%Hчас (00—23)15
%pВ английских локалях, AM («до полудня») или PM («после полудня»).
Во многих других локалях не используется.
PM
%P[2]То же, что %p, но строчными буквамиpm
Минута
%Mминута (00—59)33
Секунда
%s[2]секунд с 00:00:00 1970-01-01 UTC (см. UNIX-время)1260102804
%Sсекунда (00—60)24
%N[2]наносекунда (000000000—999999999)000000000
Время
%r12-часовое время в текущей локали03:33:24 PM03:33:24
%R[2]%H:%M15:33
%T%H:%M:%S15:33:24
%Xвремя в стандартном формате для текущей локали03:33:24 PM15:33:24
Дата и время
%cдата и время в стандартном формате для текущей локалиSun 06 Dec 2009 03:33:24 PM MSKВск 06 Дек 2009 15:33:24
Часовой пояс
%z[2]часовой пояс в формате RFC-2822 (±zzzz)+0300
%:z[2]часовой пояс в формате RFC-3339 (±zz:zz)+03:00
%Zалфавитный код часового поясаMSK
Оформление
%%Символ «%»
%nНовая строка (0x0a)
%tТабуляция (0x09)

Ключи

Единственный ключ, который определён по стандарту Single Unix Specification — -u[1]; остальные могут различаться в разных операционных системах. Ниже указаны ключи, которые используются в date в GNU Coreutils.

  • -d, --date=СТРОКА — вывести не текущее время/дату, а время/дату, описанное строкой.
  • -f, --file=ФАЙЛ — то же, что date -d для каждой строки файла.
  • -r, --reference=ФАЙЛ — вывести не текущее время/дату, а время/дату последнего изменения файла.
  • -R, --rfc-2822 — вывести дату в формате RFC-2822. То же, что date '+%a, %d %b %Y %T %z' (например, «Sun, 06 Dec 2009 15:33:24 +0300»).
  • --rfc-3339=СТРОКА — вывести дату в формате RFC-3339; строка может быть «date», «seconds» или «ns», То есть:
    • date --rfc-3339=date — то же самое, что date +%F
    • date --rfc-3339=seconds — то же самое, что date '+%F %T%:z'
    • date --rfc-3339=ns — то же самое, что date '+%F %T.%N%:z'
  • -s, --set=СТРОКА — установить время/дату, описанное строкой.
  • -u, --utc, --universal — время выводится или устанавливается в UTC.

См. также

Примечания

  1. date  команды и утилиты, The Single UNIX® Specification, выпуск 7 от The Open Group  (англ.)
  2. Расширение GNU Coreutils, также поддерживается некоторыми другими системами.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.