Что такое команда оболочки, чтобы получить текущую дату и дату 3 часа назад? - PullRequest
0 голосов
/ 07 ноября 2018

Чтобы получить текущую команду, мы просто команда сценария оболочки

дата

если вы хотите получить пользовательский формат даты

NOW=$(date +"%Y-%m-%d %T")

Я не получаю простую команду, чтобы получить дату 3 часа назад в вышеуказанном формате, любой может помочь мне, пожалуйста.

Я использовал приведенную ниже команду оболочки с perl, как показано ниже, но я не хочу другой дополнительной зависимости perl, мне просто нужна команда оболочки

CURRENT_DATE=`perl -e 'use POSIX qw(strftime);$d = strftime "%Y-%m-%d %H:%M:%S", localtime(time());print $d'`
CURRENT_DATE_MINUS_3_HRS_DATE=`perl -e 'use POSIX qw(strftime);$d = strftime "%Y-%m-%d %H:%M:%S", localtime(time() - 10800);print $d'`

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

Используя BSD date, который поставляется с macOS, используйте опцию -v.

$ date +"%Y-%m-%d %T"
2018-11-08 16:25:21
$ date -v -3H +"%Y-%m-%d %T"
2018-11-08 13:25:26
0 голосов
/ 10 ноября 2018

Показывает текущую дату:

date "+%Y-%m-%d %T"

Показать дату до 3 часов:

date -d "-3 Hours" "+%Y-%m-%d %T"

Некоторые другие вещи, которые вы можете попробовать:

# Back to 3 days
date -d "-3 Days" "+%Y-%m-%d %T"

# Next to 3 days
date -d "3 Days" "+%Y-%m-%d %T"

# Back to 2 Years and 3 Hours
date -d "-2 Years -3 Hours" "+%Y-%m-%d %T"
0 голосов
/ 07 ноября 2018

Команда date имеет ключевое слово ago для даты, которую вы можете указать с помощью опции -d:

date -d '3 hours ago' +"%Y-%m-%d %T"
...