Практические примеры использования date

Oct 13, 2016 22:39 · 425 words · 2 minute read date

С помощью команды date можно выводить текущее время в нескольких форматах, а также устанавливать время и дату в системе из консоли. Давайте разберемся!

Если выполнить команду без дополнительных аргументов, то результат будет примерно следующим:

date
Fri Aug 26 08:35:49 EEST 2016

Если у вас есть строка с датой или временем, то с помощью параметра --date (или -d) ее можно привести к формату, указанному выше:

date --date="8/22/2016"
Mon Aug 22 00:00:00 EEST 2016
date --date="Aug 22 2016"
Mon Aug 22 00:00:00 EEST 2016
date --date="22 Aug 2016"
Mon Aug 22 00:00:00 EEST 2016

Как видим, время по умолчанию устанавливается в 00:00:00, если оно не введено вместе с датой:

date --date="22 Aug 2016 13:12:10"
Mon Aug 22 13:12:10 EEST 2016

Кроме параметра --date, который мы использовали выше, для преобразования нескольких дат к единому формату можно использовать параметр --file и файл с датами:

cat datefile
Sept 9 1995
Aug 23 2007
May 27 2013 20:16:15
date --file=datefile
Sat Sep  9 00:00:00 EEST 1995
Thu Aug 23 00:00:00 EEST 2007
Mon May 27 20:16:15 EEST 2013

Также с помощью параметра --date можно получать дату «будущего»:

date --date="next mon"
Mon Aug 29 00:00:00 EEST 2016

или «прошлого»:

date --date="1 day ago"
Thu Aug 25 09:02:05 EEST 2016
date --date="1 month ago"
Tue Jul 26 09:02:20 EEST 2016
date --date="1 year ago"
Wed Aug 26 09:02:36 EEST 2015

Изменить время можно с помощью параметра --set или -s:

date
Fri Aug 26 09:03:57 EEST 2016
date --set "Fri Aug 26 09:33:00 EEST 2016"
Fri Aug 26 09:33:00 EEST 2016
date
Fri Aug 26 09:33:00 EEST 2016

Получить дату в UTC формате можно с помощью параметров -u, --utc или --universal:

date -u
Fri Aug 26 06:07:11 UTC 2016

Для отображения даты/времени в особом формате следует воспользоваться опцией форматирования, синтаксис которой следующий:

date +%

Опции форматирования могут быть следующими:

  • date +%a — день недели, сокращенный;
  • date +%A — день недели, полный;
  • date +%b — месяц, сокращенный;
  • date +%B — месяц, полный;
  • date +%d — число месяца (01—31);
  • date +%D — текущая дата в формате %m/%d/%y;
  • date +%F — текущая дата в формате %Y-%m-%d;
  • date +%H — час (00—23);
  • date +%I — час в 12-часовой системе (01—12);
  • date +%j — день года (001—366);
  • date +%m — номер месяца (01—12);
  • date +%M — минута (00—59);
  • date +%S — секунда (00—60);
  • date +%N — наносекунда (000000000—999999999);
  • date +%T — текущее время в формате %H:%M:%S;
  • date +%u — день недели (1—7, воскресенье = 7);
  • date +%U — номер недели (00—53, воскресенье — первый день недели);
  • date +%Y — год включая столетие;
  • date +%Z — алфавитный код часового пояса.
tweet Share