date命令在自动化脚本中广泛使用,今天整理了一些date的用法
- 日期转时间
> date +%F # YYYY-MM-DD
2020-06-05
- 字符串转日期
> date -d '20200605'
Fri Jun 5 00:00:00 CST 2020
> date -d '2020-06-05'
Fri Jun 5 00:00:00 CST 2020
> date -d '2020-06-05' +%s #转成时间戳
1591286400
- 字符串转日期并指定格式
> date -d '2020-06-05' +%Y%m%d => 20200605
> date -d '20200605' +%Y-%m-%d => 2020-06-05
日期字符串操作
- 当前日期加一天
> date -d "1 day" +%Y-%m-%d => 2020-06-06
> date -d "+1 day" +%Y%m%d => 20200606
> date -d tomorrow => Sat Jun 6 18:47:25 CST 2020
> date -d tomorrow +%Y%m%d => 20200606
- 当前日期减一天
> date -d "-1 day" +%Y%m%d => 20200604
> date -d "1 day ago" +%Y%m%d => 20200604
> date -d yesterday => Thu Jun 4 18:52:50 CST 2020
> date -d yesterday +%Y%m%d => 20200604
- 当前日期加一月
> date -d "1 month" +%Y%m%d => 20200705
- 为指定日期做加减操作
减一天
> date -d 'yesterday 20200521' +%Y%m%d => 20200520
> date -d '20200521 yesterday ' +%Y%m%d => 20200520
加一天
> date -d '20200519 1 day' +%Y%m%d => 20200520
> date -d '20200519 tomorrow' +%Y%m%d => 20200520
- 时间戳操作
seconds=`date -d "20200519" +%s` #转换从 1970 年 1 月 1 日 00:00:00 UTC 为到目前为止的秒数
seconds_add=`expr $seconds + 86400` #加一天,加上一天的秒数86400
to_date=`date -d @$seconds_add +%Y%m%d` # 时间戳转换为日期需要加 @
20200520
在脚本中的应用,实现脚本每天增量日志输出
#! /bin/bash
day=`date +%Y%m%d`
echo $day
sh /data/load/run_dataload.sh > /data/log/dataload_${day}.log