Date

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

## Содержание

* 1 Реализации
* 2 Использование
* 3 Ключи
* 4 См. также
* 5 Примечания
* 6 Ссылки

## Реализации

[править | править код]

Этот раздел нужно дополнить.

Пожалуйста, улучшите и дополните раздел. (7 июня 2011)

|

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

* BSD
* GNU (используется в GNU/Linux)
* Solaris

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

[править | править код]

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

$ 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.

## См. также

[править | править код]

* time (Unix)
* UNIX-время

## Примечания

[править | править код]

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, также поддерживается некоторыми другими системами.

## Ссылки

[править | править код]

* `date(1)` — страница справки man по пользовательским командам GNU/Linux на сайте OpenNet  (рус.)
* `date(1)` — страница справки man по пользовательским командам GNU/Linux  (англ.)
* `date(1)` — страница справки man по пользовательским командам FreeBSD  (англ.)
* Установка даты и времени в Linux

Команды Unix

Утилиты POSIX.1-2008

* admin
* alias
* ar
* asa
* at
* awk
* basename
* batch
* bc
* bg
* c99
* cal
* cat
* cd
* cflow
* chgrp
* chmod
* chown
* cksum
* cmp
* comm
* command
* compress
* cp
* crontab
* csplit
* ctags
* cut
* cxref
* date
* dd
* delta
* df
* diff
* dirname
* du
* echo
* ed
* env
* ex
* expand
* expr
* false
* fc
* fg
* file
* find
* fold
* fort77
* fuser
* gencat
* get
* getconf
* getopts
* grep
* hash
* head
* iconv
* id
* ipcrm
* ipcs
* jobs
* join
* kill
* lex
* link
* ln
* locale
* localedef
* logger
* logname
* lp
* ls
* m4
* mailx
* make
* man
* mesg
* mkdir
* mkfifo
* more
* mv
* newgrp
* nice
* nl
* nm
* nohup
* od
* paste
* patch
* pathchk
* pax
* pr
* printf
* prs
* ps
* pwd
* qalter
* qdel
* qhold
* qmove
* qmsg
* qrerun
* qrls
* qselect
* qsig
* qstat
* qsub
* read
* renice
* rm
* rmdel
* rmdir
* sact
* sccs
* sed
* sh
* sleep
* sort
* split
* strings
* strip
* stty
* tabs
* tail
* talk
* tee
* test
* time
* touch
* tput
* tr
* true
* tsort
* tty
* type
* ulimit
* umask
* unalias
* uname
* uncompress
* unexpand
* unget
* uniq
* unlink
* uucp
* uudecode
* uuencode
* uustat
* uux
* val
* vi
* wait
* wc
* what
* who
* write
* xargs
* yacc
* zcat

GNU Coreutils

Файловые утилиты|

* chgrp
* chown
* chmod
* cp
* dd
* df
* dir
* dircolors
* install
* ln
* ls
* mkdir
* mkfifo
* mknod[англ.]
* mv
* rm
* rmdir
* shred
* sync
* touch
* vdir

Текстовые утилиты|

* cat
* cksum
* comm
* csplit
* cut
* expand
* fmt
* fold
* head
* join
* md5sum
* nl
* od
* paste
* ptx[англ.]
* pr
* sha1sum
* sort
* split
* sum
* tac
* tail
* tr
* tsort[англ.]
* unexpand
* uniq
* wc

Shell-утилиты|

* basename
* chroot
* date
* dirname
* du
* echo
* env
* expr
* factor[англ.]
* false
* groups[англ.]
* hostid
* id
* link
* logname
* nice
* nohup
* pathchk
* pinky
* printenv[англ.]
* printf
* pwd
* readlink
* seq
* sleep
* stat
* stty
* tee
* test
* true
* tty
* uname
* unlink
* users
* who
* whoami
* yes

другие утилиты|

* size
* Start-stop-daemon
* Surfraw