我有两个变量:X和Y如何计算unix中给定日期之前的日期?
X的值将日期格式MMDDYY 给出我想要计算前是迄今为止和日期已将其归还格式为yyyymmdd。
让我给你举个例子。当X = “091509”(MMDDYY格式)Y应为 “20090914”(YYYYMMDD格式)
我有两个变量:X和Y如何计算unix中给定日期之前的日期?
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
Shell脚本还是别的东西? – pavium 2009-09-15 05:49:09
shell脚本............... – musicking123 2009-09-15 05:49:48
我不希望昨天的日期.........我想要一天的日期少于“x”的价值 – musicking123 2009-09-15 05:52:50