Объекты даты в Linux ведут себя по-разному, если указаны часы / минуты / секунды - PullRequest
2 голосов
/ 03 апреля 2019

Почему добавление одного дня работает по-разному с переменными $d и $dt ниже?

Версия для Linux: CentOS 6.8

Если происходит какое-то скрытое преобразование часового пояса с $dt, но не с $d? Если так, как я могу подавить это?

d="2019-04-01"
dt="2019-04-01 01:00:00"
date --date="$d +1 days" +'%Y-%m-%d'

Вывод: 2019-04-02

date --date="$dt +1 days" +'%Y-%m-%d %H:%M:%S'

Выход: 2019-04-01 17: 00: 00

1 Ответ

1 голос
/ 03 апреля 2019

Просто для ответа на этот вопрос (я не смог найти дубликат) в комментариях было указано, что +1 в +1 days интерпретировалось как смещение UTC, добавленное к дате.

Решение состоит в том, чтобы завершить строку даты указателем часового пояса, таким как Z или UTC, чтобы он распознавался как полная дата.

См. info '(coreutils) date invocation' для более подробной информации о спецификациях даты.

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