我有两个变量:X和Y.
X的值将是MMDDYY格式给出的日期,我想计算该日期之前的日期,并将它在格式为yyyymmdd返回英寸
让我给你举个例子。 当X = “091509”(MMDDYY格式)Y应为“20090914”(YYYYMMDD格式)
我有两个变量:X和Y.
X的值将是MMDDYY格式给出的日期,我想计算该日期之前的日期,并将它在格式为yyyymmdd返回英寸
让我给你举个例子。 当X = “091509”(MMDDYY格式)Y应为“20090914”(YYYYMMDD格式)
~$ date -d "20090101 -1 day"
Wed Dec 31 00:00:00 CET 2008
如果你想要检索的自定义格式的日期你刚才扔在一些格式字符串。
~$ date -d "2009-09-15 -1 day" +%Y%m%d
20090914
至于你的转换你可以使用bash的子萃取(假设你使用当然bash)的。 这也假定您的输入是一致的,“安全”。
X="091509"
Y=`date -d "${X:4:2}${X:0:2}${X:2:2} -1 day" +%Y%m%d`
echo $Y
见http://www.walkernews.net/2007/06/03/date-arithmetic-in-linux-shell-scripts/
我喜欢的Tcl的日期计算,即使它是笨重的壳单行。 使用Tcl 8.5:
x=091509
y=$(printf 'puts [clock format [clock add [clock scan "%s" -format "%%m%%d%%y"] -1 day] -format "%%Y%%m%%d"]' "$x" | tclsh)
由于-d选项不会在MacOS X或FreeBSD的存在,这里是他们的答案
检索相对于当前时间的日期
date -v -1d
特别是对于你的问题,你需要在-j和-f标志使用特定的日期
date -v -1d -j -f %m%d%y 091509 +%Y%m%d
日期-d“昨天”