如何在Bash中打印当前时间前一天的日期?
当前回答
date --date='-1 day'
其他回答
不是很性感,但可以胜任:
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)'
由“马丁·克莱顿”的答案形成。
date --date='-1 day'
date -d "yesterday" '+%Y-%m-%d'
or
date=$(date -d "yesterday" '+%Y-%m-%d')
echo $date
对不起,在Solaris系统上没有提到我。 因此,-date开关在Solaris bash上不可用。
我发现我可以得到之前的日期与小技巧的时区。
DATE=`TZ=MYT+16 date +%Y-%m-%d_%r`
echo $DATE
如果你有BSD (OSX)日期,你可以这样做:
date -j -v-1d
Wed Dec 14 15:34:14 CET 2011
或者如果你想在任意日期上进行日期计算:
date -j -v-1d -f "%Y-%m-%d" "2011-09-01" "+%Y-%m-%d"
2011-08-31