gho*_*g74 250
如果你有GNU日期,我理解正确
$ date +%Y:%m:%d -d "yesterday"
2009:11:09
Run Code Online (Sandbox Code Playgroud)
要么
$ date +%Y:%m:%d -d "1 day ago"
2009:11:09
Run Code Online (Sandbox Code Playgroud)
小智 49
如果您有BSD(OSX),date您可以这样做:
date -j -v-1d
Wed Dec 14 15:34:14 CET 2011
Run Code Online (Sandbox Code Playgroud)
或者,如果您想在任意日期进行日期计算:
date -j -v-1d -f "%Y-%m-%d" "2011-09-01" "+%Y-%m-%d"
2011-08-31
Run Code Online (Sandbox Code Playgroud)
sil*_*ent 41
date --date='-1 day'
Run Code Online (Sandbox Code Playgroud)
Mav*_*ick 16
MAC OSX
对于昨天的日期:
date -v-1d +%F
Run Code Online (Sandbox Code Playgroud)
其中1d定义当前日减去1天.同样的,
date -v-1w +%F - 前一周的日期
date -v-1m +%F - 上个月的日期
如果你有GNU日期,
date --date="1 day ago"
Run Code Online (Sandbox Code Playgroud)
更多信息:https://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html
小智 7
嗯,这是一个迟到的答案,但这似乎工作!
YESTERDAY=`TZ=GMT+24 date +%d-%m-%Y`;
echo $YESTERDAY;
Run Code Online (Sandbox Code Playgroud)
date -d "yesterday" '+%Y-%m-%d'
Run Code Online (Sandbox Code Playgroud)
或者
date=$(date -d "yesterday" '+%Y-%m-%d')
echo $date
Run Code Online (Sandbox Code Playgroud)
date +%Y:%m:%d -d "yesterday"
Run Code Online (Sandbox Code Playgroud)
有关日期格式的详细信息请参见手册页日期
date --date='-1 day'
Run Code Online (Sandbox Code Playgroud)
抱歉没有在 Solaris 系统上提及 I。因此,-date 开关在 Solaris bash 上不可用。
我发现我可以通过时区的小技巧获得上一个日期。
DATE=`TZ=MYT+16 date +%Y-%m-%d_%r`
echo $DATE
Run Code Online (Sandbox Code Playgroud)