UNIX下获取前一天后一天的日期
在Linux下很容易解决这个问题
十多年的房县网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整房县建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“房县网站设计”,“房县网站推广”以来,每个客户项目都认真落实执行。
date +"%Y%m%d" -d "+n days" 今天的后n天日期
date +"%Y%m%d" -d "-n days" 今天的前n天日期
在UNIX下没有'-d'选项,所以无法使用上面的方法
网上看到有一种通过时区进行调整echo `TZ=aaa16 date +%Y%m%d\ %H:%M:%S`
注意:date打印的并不是本地时区的时间,而是标准时间,既伦敦时间。
伦敦在西一区,北京在东八区相差八个时区。
TZ是一个系统的环境变量,记录了系统所在的时区,aaa可以为任意字符串,16表示与标准时间的时差。
输入env|grep TZ输出TZ=EAT-8
同理,通过echo `TZ=aaa-32 date +%Y%m%d\ %H:%M:%S`可获取后一天的日期
以上两种是比较简单的获取方法,如果觉得这种方法不太靠谱,可以写个shell脚本,以下自己写的可以参考下
#!/bin/sh #输入日期参数,不输入默认当天 if [ $# -eq 1 ] then today=$1 else today=`date +%Y%m%d` fi #获取年月日 year=`echo $today|cut -c 1-4` month=`echo $today|cut -c 5-6` day=`echo $today|cut -c 7-8` if [ $day -eq 1 ] then month=`expr $month - 1` #月份减一后如果为0则为上一年,月份置12,年份减一 [ $month -eq 0 ] && month=12 && year=`expr $year - 1` #获取年月日历 aaa=`cal $month $year` #获取最后一天 day=`echo $aaa|awk '{print $NF}'` else day=`expr $day - 1` fi #如果日期只有一位则前补0 expr $day : "^.$" > /dev/null && day=0$day expr $month : "^.$" > /dev/null && month=0$month lastdate=$year$month$day echo "lastdate="$lastdate year=`echo $today|cut -c 1-4` month=`echo $today|cut -c 5-6` day=`echo $today|cut -c 7-8` aaa=`cal $month $year` bbb=`echo $aaa|awk '{print $NF}'` [ $bbb -eq $day ] && month=`expr $month + 1` && day=0 [ $month -gt 12 ] && month=1 && year=`expr $year + 1` day=`expr $day + 1` expr $day : "^.$" > /dev/null && day=0$day expr $month : "^.$" > /dev/null && month=0$month nextdate=$year$month$day echo "nextdate="$nextdate exit 0
新闻名称:UNIX下获取前一天后一天的日期
文章出自:http://ybzwz.com/article/gocoso.html