Почему дата вывода 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 в субботу.

  • мучительный в эпоху Unix
  • Как использовать команду date, чтобы узнать, какая дата будет «понедельная неделя 40»?
  • использование даты в сценарии оболочки
  • Изменение локализации
  • Правильно ли время системы, когда дата не установлена?
  • Добавление текущей даты из переменной в имя файла
  • Проблема 2038 года
  • Может ли команда date принимать в качестве аргумента строку даты в файле, заданном другой командой date?
  • Как печатать даты между двумя разными датами
  • Арифметические операции в дате bash ... ¿меняются на противоположные?
  • Изменить дату только для одного пользователя без полномочий root в Linux
  • Interesting Posts

    Сообщение Systemd init появляется при загрузке OpenRC

    find * ищет файл с именем «*» на Debian, но не на RHEL

    Удалить первую строку файла

    Разница между разбиением слов до разложений и разбиением слов при разложениях в bash?

    Почему чтение с ошибкой конвейера в сеансе ssh?

    Получение всех файлов содержит значение даты меньше даты ввода

    Пакетное переименование "case duplicates"

    установить библиотеки X11 и файлы заголовков в учетной записи пользователя centOS

    виртуальная машина centos не регистрируется на сервере dns интрасети

    cygwin отображает прямоугольники вместо символов

    лучше несколько заменить фигурные скобки

    Как изменить фон рабочего стола через терминал на openSUSE?

    Установка пакетов RPM с циклической зависимостью

    Почему записи в моем / proc / iomem – все 00000000-00000000?

    Что я должен учитывать при совместном использовании кеша пакетов между пользователями LXC?

    Linux и Unix - лучшая ОС в мире.