1、使用date -d 选项
date +"%Y%m%d" -d "+n days" 今天的后n天日期
date +"%Y%m%d" -d "-n days" 今天的前n天日期
2、常用日期格式
PYTHON
- [iyunv@localhost tmp]# date +"%F"
- 2012-06-08
- [iyunv@localhost tmp]# date +"%D"
- 06/08/12
- [iyunv@localhost tmp]# date +"%Y%m%d %H:%M:%S"
- 20120608 04:52:28
- [iyunv@localhost tmp]# date +"%Y%m%d"
- 20120608
- [iyunv@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 hours"
- 20120608 05:52:43
- [iyunv@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 days"
- 20120609 04:52:52
- [iyunv@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 months"
- 20120708 04:52:56
- [iyunv@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 years"
- 20130608 04:53:07</pre><pre name="code" class="php">[iyunv@localhost tmp]# date +"%T"
- 05:03:21
- [iyunv@localhost tmp]# date +"%F %T"
- 2012-06-08 05:03:34
- [iyunv@localhost tmp]# date +"%D %T"
PHP
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S"
- 2012-07-18 05:17:01
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+10hour"
- 2012-07-18 15:17:16
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+24hour"
- 2012-07-19 05:17:37
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-24hour"
- 2012-07-17 05:17:45
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-20minute"
- 2012-07-18 04:58:00
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+20minute"
- 2012-07-18 05:38:05
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+2day"
- 2012-07-20 05:18:15
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-2day"
- 2012-07-16 05:18:19
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-2month"
- 2012-05-18 05:18:24
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+2month"
- 2012-09-18 05:18:28
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+2year"
- 2014-07-18 05:18:32
- [iyunv@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-2year"
- 2010-07-18 05:18:36
用shell将时间字符串与时间戳互转date +%s 可以得到UNIX的时间戳;
用shell将时间字符串与时间戳互转:
date -d "2010-10-18 00:00:00" +%s 输出形如:1287331200
而时间戳转换为字符串可以这样做:
date -d @1287331200 "+%Y-%m-%d" 输出形如:2010-10-18
如果需要得到指定日期的前后几天,可以:
1、seconds=`date -d "2010-10-18 00:00:00" +%s` #得到时间戳
2、seconds_new=`expr $seconds + 86400` #加上一天的秒数86400
3、date_new=`date -d @$seconds_new "+%Y-%m-%d"` #获得指定日前加上一天的日前
|