Я использую команду «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; просто используйте время() чтобы получить смещение эпохи, и местное время() чтобы преобразовать его в полезную структуру данных даты.