Назад | Перейти на главную страницу

date -d: какие строки принимаются?

Я использую команду «date», чтобы выполнить простую арифметику даты. Параметр «-d» позволяет мне это сделать, но на страницах руководства очень неясно, какие данные являются действительными. Каковы все возможные варианты и как мне это понять?

Я могу использовать эту команду, чтобы определить дату 5 минут назад: date -d «5-минут назад» +% H:% M

Эта команда также работает: date -d "-5 минут" +% H:% M

Я случайно наткнулся на эти варианты / разочарование. Я не вижу в документации опции «минут назад» или «-X минут».

Я бы использовал Perl для выполнения арифметических операций, но, к сожалению, я не могу установить какие-либо дополнительные пакеты Perl.

Есть несколько строк относительной даты. minutes ago работает (vs. minutes-ago с тире).

На coreutils есть довольно много примеров date информационные страницы:

http://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html

Сложным является формат временной метки UNIX (это полезно, если вы управляете базой данных текстовых файлов - вы хотите сохранить данные даты и времени в виде временных меток UNIX, чтобы вы могли выполнять с ними межчисленные математические вычисления)

$ date +%s
1299273353
$ date -d @1299273353
Fri Mar  4 15:15:53 CST 2011

Знак at сообщает команде date, что число является меткой времени UNIX.

Вам не нужно устанавливать дополнительные пакеты для обработки математики дат в Perl; просто используйте время() чтобы получить смещение эпохи, и местное время() чтобы преобразовать его в полезную структуру данных даты.