当前位置: 技术问答>linux和unix
请教,通过改变时区来获得N天前日期,为啥只能是7天啊
来源: 互联网 发布时间:2016-10-06
本文导语: 在网上找的一个方法,可以获得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...
在网上找的一个方法,可以获得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天前日期,请问这是为什么啊,谢谢指教
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 "-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
#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的方式好像是有限制,在不同的系统中还不一样..