date函数
1.在设定时间方面:
date -s //设置当前时间,只有root权限才能设置,其他只能查看。(-s命令只有执行时需要有root权限)
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
2.加减方面
date +%Y%m%d //显示前天年月日
date +%Y%m%d --date="+1 day" //显示前一天的日期
date +%Y%m%d --date="-1 day" //显示后一天的日期
date +%Y%m%d --date="-1 month" //显示上一月的日期
date +%Y%m%d --date="+1 month" //显示下一月的日期
date +%Y%m%d --date="-1 year" //显示前一年的日期
date +%Y%m%d --date="+1 year" //显示下一年的日期
5.使用实例:
实例1:显示当前时间
命令:
date
date '+%c'
date '+%D'-----直接显示日期 (mm/dd/yy)
date '+%x'-----直接显示日期 (mm/dd/yy)
date '+%T'----- 直接显示时间 (24 小时制)
date '+%X'----- 直接显示时间 (24 小时制)
#HP-unix下获取前一天得日期
#set命令用于脚本调试,set -x 是开启 set +x是关闭 set -o是查看 (xtrace),set去追踪一段代码的显示情况。
set -x
yy=`date +%Y` #Year yyyy
mm=`date +%m` #Month mm
dd=`date +%d` #Day dd
# echo $yy $dd $mm
if [ $dd = "01" ]
then
lm=`expr $mm - 1`
if [ $lm -eq 0 ]
then
lm=12
yy=`expr $yy - 1`
fi
# echo lm=$lm
case $lm in
1|3|5|7|8|10|12) Yesterday=31 ;;
4|6|9|11) Yesterday=30 ;;
2)
if [ `expr $yy % 4` -eq 0 -a `expr $yy % 100` -ne 0 -o `expr $yy % 400` -eq 0 ]
then Yesterday=29
else Yesterday=28
fi ;;
esac
mm=$lm
# echo Yesterday=$Yesterday
# echo $mm
else
Yesterday=`expr $dd - 1`
fi
case $Yesterday
in 1|2|3|4|5|6|7|8|9) Yesterday='0'$Yesterday
esac
case $mm in
1|2|3|4|5|6|7|8|9) mm='0'$mm ;;
esac
Yesterday=$yy$mm$Yesterday
echo $Yesterday