如何在Bash中打印当前时间前一天的日期?
当前回答
高级bash脚本编写指南
date +%Y:%m:%d -d "yesterday"
有关日期格式的详细信息,请参阅日期手册页
date --date='-1 day'
其他回答
也许改用Perl ?
perl -e 'print scalar localtime( time - 86400 ) . "\n";'
或者使用nawk, (ab)使用/usr/bin/adb:
nawk 'BEGIN{printf "0t%d=Y\n", srand()-86400}' | adb
我也发现了这个…疯了!
/usr/bin/truss /usr/bin/date 2>&1 | nawk -F= '/^time\(\)/ {gsub(/ /,"",$2);printf "0t%d=Y\n", $2-86400}' | adb
yesterday=`date -d "-1 day" %F`
将昨天的日期(YYYY-MM-DD格式)放入变量$yesterday。
MAC OSX
昨天的日期:
date -v-1d +%F
其中1d定义今天减去1天。同样的,
date -v-1w +%F -表示前一周的日期
date -v-1m +%F -表示上个月的日期
如果你有gnu日期,
date --date="1 day ago"
更多信息:https://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html
好吧,这是一个晚的答案,但这似乎是有效的!
YESTERDAY=`TZ=GMT+24 date +%d-%m-%Y`;
echo $YESTERDAY;
date +%Y:%m:%d|awk -vFS=":" -vOFS=":" '{$3=$3-1;print}'
2009:11:9