Меню
Главная
Случайная статья
Настройки
|
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 2
date — команды и утилиты, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)
- 1 2 3 4 5 6 7 8 9 10 11 Расширение GNU Coreutils, также поддерживается некоторыми другими системами.
Ссылки
|
|