Linux date时间操作使用整理

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

猜你喜欢

转载自blog.csdn.net/qq_24256877/article/details/106641978