在bash/unix中获取上一个日期

mis*_*ded 6 unix bash shell solaris solaris-10

我希望在unix/shell脚本中获取上一个日期.

我使用以下代码

date -d ’1 day ago’ +’%Y/%m/%d’

但是我收到以下错误.

date: illegal option -- d

至于我在inetrnet上读到的内容,它基本上意味着我使用的是旧版本的GNU.任何人都可以帮助这个.

更多信息

unix> uname -a

SunOS Server 5.10 Generic_147440-19 sun4v sparc SUNW,Sun-Fire-T200

以下命令也会出错.

unix> date --version

date: illegal option -- version
usage:  date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
Run Code Online (Sandbox Code Playgroud)

kum*_*prd 15

试试这个:

date --date="yesterday" +%Y/%m/%d
Run Code Online (Sandbox Code Playgroud)


Vla*_*oss 6

dtd="2015-06-19"
yesterday=$( date -d "${dtd} -1 days" +'%Y_%m_%d' )
echo $yesterday;
Run Code Online (Sandbox Code Playgroud)


小智 5

为了使用 date 命令获得 1 天的回溯日期:

date -v -1d它将给出 (当前日期 -1) 表示 1 天前。

date -v +1d 这将给出 (当前日期 +1) 意味着 1 天后。

类似地,下面的编写代码可以用来代替 来d查找年、月等

y-Year, m-Month w-Week d-Day H-Hour M-Minute
S-Second


Dan*_*ard 5

您可以使用

date -d "30 days ago" +"%d/%m/%Y"
Run Code Online (Sandbox Code Playgroud)

要获得30天前的日期,同样可以用x天数替换30


dev*_*ull 4

这里建议的几个解决方案假设GNU coreutils系统上存在。以下内容应在 Solaris 上运行:

\n\n
TZ=GMT+24 date +\xe2\x80\x99%Y/%m/%d\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n