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


当前回答

date +%Y:%m:%d|awk -vFS=":" -vOFS=":" '{$3=$3-1;print}'
2009:11:9

其他回答

不是很性感,但可以胜任:

perl -e 'my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time - 86400);$year += 1900; $mon+= 1; printf ("YESTERDAY: %04d%02d%02d \n", $year, $mon, $mday)'

由“马丁·克莱顿”的答案形成。

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

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

or

$ date +%Y:%m:%d -d "1 day ago"
2009:11:09
date +%Y:%m:%d|awk -vFS=":" -vOFS=":" '{$3=$3-1;print}'
2009:11:9

date --date='-1 day'

对不起,在Solaris系统上没有提到我。 因此,-date开关在Solaris bash上不可用。

我发现我可以得到之前的日期与小技巧的时区。

DATE=`TZ=MYT+16 date +%Y-%m-%d_%r`
echo $DATE