如何在Bash中打印当前时间前一天的日期?


当前回答

yesterday=`date -d "-1 day" %F`

将昨天的日期(YYYY-MM-DD格式)放入变量$yesterday。

其他回答

试试下面的代码,它也处理DST部分。

if [ $(date +%w) -eq $(date -u +%w) ]; then
  tz=$(( 10#$gmthour - 10#$localhour ))
else
  tz=$(( 24 - 10#$gmthour + 10#$localhour ))
fi
echo $tz
myTime=`TZ=GMT+$tz date +'%Y%m%d'`

何赛义工

如果你有GNU日期,我理解正确

$ date +%Y:%m:%d -d "yesterday"
2009:11:09

or

$ date +%Y:%m:%d -d "1 day ago"
2009:11:09

好吧,这是一个晚的答案,但这似乎是有效的!

     YESTERDAY=`TZ=GMT+24 date +%d-%m-%Y`;
     echo $YESTERDAY;

date --date='-1 day'

yesterday=`date -d "-1 day" %F`

将昨天的日期(YYYY-MM-DD格式)放入变量$yesterday。