1. date -d操作
date +"%Y%m%d" -d "+n days" #今天的后n天日期 date +"%Y%m%d" -d "-n days" #今天的前n天日期
2. 常用日期格式输出
date +"%F" #输出: 2012-06-08 date +"%D" #输出: 06/08/12 date +"%Y%m%d %H:%M:%S" #输出: 20120608 04:52:28 date +"%Y%m%d" #输出: 20120608 date +"%Y%m%d %H:%M:%S" -d "+1 hours" #输出: 20120608 05:52:43 date +"%Y%m%d %H:%M:%S" -d "+1 days" #输出: 20120609 04:52:52 date +"%Y%m%d %H:%M:%S" -d "+1 months" #输出: 20120708 04:52:56 date +"%Y%m%d %H:%M:%S" -d "+1 years" #输出: 20130608 04:53:07 date +"%T" #输出: 05:03:21 date +"%F %T" #输出: 2012-06-08 05:03:34 date +"%D %T" #输出: 06/08/12 05:03:39
3. 日期格式转换
# 字符串转时间戳 date -d "2010-10-18 00:00:00" +%s #输出:1287331200 # 时间戳转字符串 date -d @1287331200 "+%Y-%m-%d" #输出:2010-10-18 # 获取指定日期的后N天,如果是前N天,则第二部中间是 - 步骤1:得到时间戳 seconds=`date -d "2010-10-18 00:00:00" +%s`
步骤2:加上N天的秒数86400*N seconds_new=`expr $seconds + 86400*N`
步骤3:获得指定日前加上一天的日前 date_new=`date -d @$seconds_new "+%Y-%m-%d"`