1、默认就可以识别的格式
根据文档(外链)+测试,我们可以得到在中国常用的受支持的一些日期格式:
echo $(date -d "2021-1-1" ) #1和01都可以
echo $(date -d "2021/1/1" ) #1和01都可以
echo $(date -d "12/1/2021" ) #月/日/年,美式写法
echo $(date -d "20210101" ) #年月日-神奇吧,存数字格式也支持,不过要按照年月日的顺序来,并且不足两位的数字要补0
#补充一句,年与日格式必须为8位数字,且日期不能忽略,不可以直接用年月进行转换
#其他不常用的就不列举了,大家可以自行尝试哈
2、当前日期的加减
$ date -d "+3 day"
Mon Feb 5 09:45:52 CST 2018
$ date -d "-3 day"
Tue Jan 30 09:46:04 CST 2018
$ date -d "-3 month"
Thu Nov 2 09:46:16 CST 2017
$ date -d "+3 month"
Wed May 2 09:46:24 CST 2018
$ date -d "+3 year"
Tue Feb 2 09:46:35 CST 2021
$ date -d "-3 year"
Mon Feb 2 09:46:40 CST 2015
$ date -d "-3 hour"
Fri Feb 2 06:46:59 CST 2018
$ date -d "+3 hour"
Fri Feb 2 12:47:02 CST 2018
$ date -d "+3 minute"
Fri Feb 2 09:50:09 CST 2018
$ date -d "-3 minute"
Fri Feb 2 09:44:12 CST 2018
$ date -d "-3 second"
Fri Feb 2 09:47:21 CST 2018
$ date -d "+3 second"
#说句题外话,有的地方在英文单词后面加了一个复数s,比如 +3 years ,测试发现效果和+3 year是一样的,应该是内部有做处理
3、指定时间的加减
和2、其实差不多,只不过我们可以将1、中的支持的格式时间字符串传递进去,比如
echo $(date -d "20210301 -2 months")
Fri Jan 1 00:00:00 CST 2021
#将能够识别的日期格式放在日期计算表达式之前即可,不在赘述