Почему дата вывода X-3 вместо X-2 дней, когда я выполняю арифметические операции

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

$ date -d 20140331" - 2 days" +%Y%m%d 

Ожидаемый результат

 20140329 

Фактический выход

 20140328 

Использование «- 2 дня» дает ожидаемый результат, но все же пытается найти, почему вычитание секунд не сработало?

выходной вывод unix

Примечание. Мой процесс выполняется в середине дня, и, следовательно, я не вижу никаких крайних граничных условий, например, 1 сек.

Дополнительная информация

 $ date --version date (GNU coreutils) 5.97 Copyright (C) 2006 Free Software Foundation, Inc. 

One Solution collect form web for “Почему дата вывода X-3 вместо X-2 дней, когда я выполняю арифметические операции”

Поскольку ваш сервер работает в часовом поясе BST, это проблема, связанная с недавним переходом с GMT на BST, который произошел вчера. В 01:00 в воскресенье утром часы были сдвинуты вперед на 1 час (мы «потеряли» час – поэтому воскресенье было всего 23 часа), чтобы перейти от GMT в BST. Если вы говорите «два дня назад», это учитывается, и дата правильная. Однако, если вы вернетесь назад на 172800 секунд (48 часов), то отсутствующий час заставит вас вернуться к 23:00 в субботу.

  • Быстрое вычисление различий даты
  • Изменить дату только для одного пользователя без полномочий root в Linux
  • Как записать следующие 3 или X дней с помощью команды?
  • Как получить последний день предыдущего месяца в UNIX (HPUX)
  • Получение даты от клиента ssh
  • Как увеличить день в день, который хранится в переменной
  • использование даты в сценарии оболочки
  • Как печатать даты между двумя разными датами
  • Как отображать дату Дискорда?
  • Как установить дату в формате Epoch
  • Проблема 2038 года
  • Linux и Unix - лучшая ОС в мире.