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.

См. также

Напишите отзыв о статье "Date"

Примечания

  1. 1 2 [www.opengroup.org/onlinepubs/9699919799/utilities/date.html date] — команды и утилиты, The Single UNIX® Specification, выпуск 7 от The Open Group  (англ.)
  2. 1 2 3 4 5 6 7 8 9 10 11 Расширение GNU Coreutils, также поддерживается некоторыми другими системами.

Ссылки

  • [www.opennet.ru/man.shtml?topic=date&category=1&russian=0 date(1)] — страница справки man по пользовательским командам GNU/Linux на сайте OpenNet  (рус.)
  • [linux.die.net/man/1/date date(1)] — страница справки man по пользовательским командам GNU/Linux  (англ.)
  • [www.freebsd.org/cgi/man.cgi?query=date&sektion=1 date(1)] — страница справки man по пользовательским командам FreeBSD  (англ.)
  • [manlinux.org/how-to-set-date-and-time-in-linux/ Установка даты и времени в Linux]

Отрывок, характеризующий Date

– Что стали то? Аль загородили? Или уж на француза наткнулись?
– Нет не слыхать. А то палить бы стал.
– То то торопили выступать, а выступили – стали без толку посереди поля, – всё немцы проклятые путают. Эки черти бестолковые!
– То то я бы их и пустил наперед. А то, небось, позади жмутся. Вот и стой теперь не емши.
– Да что, скоро ли там? Кавалерия, говорят, дорогу загородила, – говорил офицер.
– Эх, немцы проклятые, своей земли не знают, – говорил другой.
– Вы какой дивизии? – кричал, подъезжая, адъютант.
– Осьмнадцатой.
– Так зачем же вы здесь? вам давно бы впереди должно быть, теперь до вечера не пройдете.
– Вот распоряжения то дурацкие; сами не знают, что делают, – говорил офицер и отъезжал.
Потом проезжал генерал и сердито не по русски кричал что то.
– Тафа лафа, а что бормочет, ничего не разберешь, – говорил солдат, передразнивая отъехавшего генерала. – Расстрелял бы я их, подлецов!
– В девятом часу велено на месте быть, а мы и половины не прошли. Вот так распоряжения! – повторялось с разных сторон.
И чувство энергии, с которым выступали в дело войска, начало обращаться в досаду и злобу на бестолковые распоряжения и на немцев.
Причина путаницы заключалась в том, что во время движения австрийской кавалерии, шедшей на левом фланге, высшее начальство нашло, что наш центр слишком отдален от правого фланга, и всей кавалерии велено было перейти на правую сторону. Несколько тысяч кавалерии продвигалось перед пехотой, и пехота должна была ждать.
Впереди произошло столкновение между австрийским колонновожатым и русским генералом. Русский генерал кричал, требуя, чтобы остановлена была конница; австриец доказывал, что виноват был не он, а высшее начальство. Войска между тем стояли, скучая и падая духом. После часовой задержки войска двинулись, наконец, дальше и стали спускаться под гору. Туман, расходившийся на горе, только гуще расстилался в низах, куда спустились войска. Впереди, в тумане, раздался один, другой выстрел, сначала нескладно в разных промежутках: тратта… тат, и потом всё складнее и чаще, и завязалось дело над речкою Гольдбахом.
Не рассчитывая встретить внизу над речкою неприятеля и нечаянно в тумане наткнувшись на него, не слыша слова одушевления от высших начальников, с распространившимся по войскам сознанием, что было опоздано, и, главное, в густом тумане не видя ничего впереди и кругом себя, русские лениво и медленно перестреливались с неприятелем, подвигались вперед и опять останавливались, не получая во время приказаний от начальников и адъютантов, которые блудили по туману в незнакомой местности, не находя своих частей войск. Так началось дело для первой, второй и третьей колонны, которые спустились вниз. Четвертая колонна, при которой находился сам Кутузов, стояла на Праценских высотах.
В низах, где началось дело, был всё еще густой туман, наверху прояснело, но всё не видно было ничего из того, что происходило впереди. Были ли все силы неприятеля, как мы предполагали, за десять верст от нас или он был тут, в этой черте тумана, – никто не знал до девятого часа.
Было 9 часов утра. Туман сплошным морем расстилался по низу, но при деревне Шлапанице, на высоте, на которой стоял Наполеон, окруженный своими маршалами, было совершенно светло. Над ним было ясное, голубое небо, и огромный шар солнца, как огромный пустотелый багровый поплавок, колыхался на поверхности молочного моря тумана. Не только все французские войска, но сам Наполеон со штабом находился не по ту сторону ручьев и низов деревень Сокольниц и Шлапаниц, за которыми мы намеревались занять позицию и начать дело, но по сю сторону, так близко от наших войск, что Наполеон простым глазом мог в нашем войске отличать конного от пешего. Наполеон стоял несколько впереди своих маршалов на маленькой серой арабской лошади, в синей шинели, в той самой, в которой он делал итальянскую кампанию. Он молча вглядывался в холмы, которые как бы выступали из моря тумана, и по которым вдалеке двигались русские войска, и прислушивался к звукам стрельбы в лощине. В то время еще худое лицо его не шевелилось ни одним мускулом; блестящие глаза были неподвижно устремлены на одно место. Его предположения оказывались верными. Русские войска частью уже спустились в лощину к прудам и озерам, частью очищали те Праценские высоты, которые он намерен был атаковать и считал ключом позиции. Он видел среди тумана, как в углублении, составляемом двумя горами около деревни Прац, всё по одному направлению к лощинам двигались, блестя штыками, русские колонны и одна за другой скрывались в море тумана. По сведениям, полученным им с вечера, по звукам колес и шагов, слышанным ночью на аванпостах, по беспорядочности движения русских колонн, по всем предположениям он ясно видел, что союзники считали его далеко впереди себя, что колонны, двигавшиеся близ Працена, составляли центр русской армии, и что центр уже достаточно ослаблен для того, чтобы успешно атаковать его. Но он всё еще не начинал дела.