日期:2014-05-16  浏览次数:20573 次

请教,通过改变时区来获得N天前日期,为啥只能是7天啊
在网上找的一个方法,可以获得N天前日期:
N=5
OTZ=$TZ
TZ=`echo $TZ | nawk -v nn=$N '{h=substr($1,1,3); \
a=substr($1,4);b=a+24*nn-8;printf("%s%+d",h,b)}'`
export TZ
echo $TZ
MYDATE=`date +%y%m%d`

当N取不大于7的值时,可以正确得到,但是当N大于7时,得到的日期却是系统当天日期,而非N天前日期,请问这是为什么啊,谢谢指教

------解决方案--------------------
如果是linux系统 很方便哦
date -d "-1 day"
那个1那儿 你改成几天 就是几天前的日期
------解决方案--------------------
然后格式化成你想要的格式 比如
#date -d "-10 day" +%y%m%d
101004
#date -d "-10 day" +%Y%m%d
20101004
#date -d "-10 day" +%F
2010-10-04
------解决方案--------------------
修改TZ的方式好像是有限制,在不同的系统中还不一样..