shell中date命令的一些常用操作

261 阅读2分钟

打印当前的日期时间

date

2019年 11月 29日 星期五 21:28:01 CST

格式化时间

date '+%Y-%m-%d %H:%M:%S'

2019-11-29 21:28:01

打印时间偏差后的时间

5天前

date -d '-5 day'

date -d '-5 days'

2019年 11月 24日 星期日 21:54:45 CST

5天后

date -d '+5 day'

date -d '+5 days'

2019年 12月 04日 星期三 21:55:28 CST

如果要格式化,同样在后面加'+%Y-%m-%d %H:%M:%S'

date -d '+5 days' '+%Y-%m-%d %H:%M:%S'

2019-12-04 21:55:28

时间单位同样可用其他的: 5年前

date -d '-5 year'
date -d '-5 years'

5月前

date -d '-5 mon'
date -d '-5 month'
date -d '-5 mons'
date -d '-5 months'

5星期前

date -d '-5 week'
date -d '-5 weeks'

5小时前

date -d '-5 hour'
date -d '-5 hours'

5分钟前

date -d '-5 min'
date -d '-5 mins'
date -d '-5 minute'
date -d '-5 minutes'

5分钟前

date -d '-5 sec'
date -d '-5 secs'
date -d '-5 second'
date -d '-5 seconds'

打印时间戳

当前的时间戳

date +%s

1575035158

求指定时间的时间戳

date -d "2019-11-29 21:38:56" +%s

1575034736

求指定偏差的时间戳

date -d "`date -d '-5 year' '+%Y-%m-%d %H:%M:%S'`" +%s

1417269619

时间戳也可以直接使用数值减的方式,比如5天前

let a=(`date +%s` - 86400*5)
echo $a

1574604826

时间戳转时间

date -d @1574604826

Sun Nov 24 22:13:46 CST 2019

date -d @1574604826 '+%Y-%m-%d %H:%M:%S'

2019-11-24 22:13:46