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] год (без столетия) понедельника недели %V 09
%G[2] год (включая столетие) понедельника недели %V 2009
Дата
%D %m/%d/%y 12/06/09
%x дата в формате текущей локали 12/06/2009 06.12.2009
%F[2] %Y-%m-%d 2009-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
Время
%r 12-часовое время в текущей локали 03:33:24 PM 03:33:24
%R[2] %H:%M 15:33
%T %H:%M:%S 15:33:24
%X время в стандартном формате для текущей локали 03:33:24 PM 15: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. 1 2 date — команды и утилиты, The Single UNIX® Specification, выпуск 7 от The Open Group  (англ.)
  2. 1 2 3 4 5 6 7 8 9 10 11 Расширение GNU Coreutils, также поддерживается некоторыми другими системами.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.