У меня есть оболочка script, которая работает в Linux и использует этот вызов для получения вчерашней даты в формате YYYY-MM-DD:
date -d "1 day ago" '+%Y-%m-%d'
Он работает большую часть времени, но когда script запускался вчера утром в 2013-03-11 0:35 CDT, он возвращал "2013-03-09" вместо "2013-03-10".
Предположительно, летнее время (которое началось вчера) виновато. Я предполагаю, что способ "1 day ago" реализован, он вычитал 24 часа, а за 24 часа до 2013-03-11 0:35 CDT был 2013-03-09 23:35 CST, что привело к результату "2013-03-09".
Итак, какой хороший DST-безопасный способ получить вчера дату в bash на Linux?