在linuxshell编程中,经常会用到日期的加减法。以前是通过expr函数计算的,很麻烦。其实date命令本身就提供了日期的加减法,非常方便。例如:获取昨天的时间date+%Y%m%d--date="-1day"date用法:date[OPTION]...[+FORMAT]date[-u|--utc|--universal][MMDDhhmm[[CC]YY][.ss]]date可用于显示或设置系统日期和时间。1、在显示方面,用户可以设置显示的格式。格式设置为一个加号后面跟着几个标记,可用标记列表如下:%:打印出来%%n:下一行%t:跳格%H:hour(00..23)%I:hour(01..12)%k:hour(0..23)%l:hour(1..12)%M:minute(00..59)%p:显示本地AM或PM%r:直接显示时间(12小时制,格式为hh:mm:ss[AP]M)%s:从1970年1月1日00:00:00UTC到现在%S之前的秒数:秒(00..61)%T:直接显示时间(24小时格式)%X:相当于%H:%M:%S%Z:显示时区%a:星期几(Sun..Sat)%A:Dayoftheweek(Sunday..Saturday)%b:Month(Jan..Dec)%B:Month(January..December)%c:直接显示日期和时间%d:Day(01..31)%D:直接显示日期(mm/dd/yy)%h:同%b%j:年中的第几天(001..366)%m:月份(01..12)%U:一年中的第几周(00..53)(如果星期日是一周的第一天)%w:星期几(0..6)%W:一年中的第几天Week(00..53))(当星期一是fi一周的第一天)%x:直接显示日期(mm/dd/yy)%y:年份的最后两位数(00.99)%Y:完整的年份(0000..9999)2.在settingtimedate-s//设置当前时间,只有root权限可以设置,其他只能查看。date-s20080523//设置为20080523,会将具体时间设置为空00:00:00date-s01:01:01//设置具体时间,不会改变日期date-s“01:01:012008-05-23″//Thiscansetalltimedate-s“01:01:0120080523″//Thiscansetalltimedate-s“2008-05-2301:01:01″//ThiswayAlltimecanbesetdate-s"2008052301:01:01″//这样可以设置所有时间3.加减date+%Y%m%d//显示当前的日、年、月、日date+%Y%m%d--date="+1day"//显示第二天的日期date+%Y%m%d--date="-1day"//显示上一天的日期daydate+%Y%m%d--date="-1month"//显示上月日期date+%Y%m%d--date="+1month"//显示上月日期下一个月date+%Y%m%d--date="-1year"//显示上一年的日期date+%Y%m%d--date="+1year"//显示上一年的日期dateofthenextyear#t=3t是定义变量date-d-${t}day'+%Y%m%d'`//T是前几天
