Как рассчитать дату в прошлом от данной даты (также в прошлом), используя «date -d 'xx / xx / xxxx - xx'» - PullRequest
0 голосов
/ 27 марта 2019

У меня есть дата ввода:

01-01-2019 08: 30: 00

И я хотел бы поддержать это вовремя:

2 часа 10 минут

Итак, новая дата должна выглядеть так:

01-01-2019 06: 20


Я пробовал команды:

* * Тысяча двадцать-одиной (1) * * тысяча двадцать-дв которые возвращаются: Tue Jan 1 09:30:00 STD 2019 (хорошо, но, кажется, удачный выстрел) * +1025 * (2) date -d "2019-01-01 08:30:00 - 1hour" который возвращает: Tue Jan 1 11:30:00 STD 2019, что означает + 3 часа (неправильно)

(3) date -d "2019-01-01 08:30:00 + 3hours" который возвращает: Tue Jan 1 07:30:00 STD 2019, что означает -1час (неправильно)

(4) * 1 034 * который возвращает: Tue Jan 1 07:31:00 STD 2019, что означает -59 минут (неправильно)

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Вам, вероятно, нужно явно указать свой часовой пояс:

$ TZ=STD date -d '2019-01-01 08:30:00 STD + 1 hour'
Tue Jan  1 09:30:00 STD 2019
$ TZ=STD date -d '2019-01-01 08:30:00 STD - 3 hour'
Tue Jan  1 05:30:00 STD 2019
$ TZ=STD date -d '2019-01-01 08:30:00 STD + 2 minutes'
Tue Jan  1 08:32:00 STD 2019

Это, кажется, облегчает путаницу date s.

0 голосов
/ 27 марта 2019

Это единственный надежный способ сделать это:

date -d "@$(( $(date -d '2019-01-01 08:30:00' +%s) - ( 2 * 60 + 10 ) * 60 ))"

Сначала преобразовать в секунды с начала эпохи.

Затем вычесть необходимое время.

Затемиспользуйте date для форматирования вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...