shell 获取时间

前端之家收集整理的这篇文章主要介绍了shell 获取时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

获取时间操作

  1. /* date 获取参数 */
  2. CUR_DATE=`date -d "-1 day" +%Y-%m-%d` CUR_PARTITION=`date -d "-1 day" +%Y%m%d` BEGIN_PARTITION=`date -d "-1 day" +%Y%m%d` END_PARTITION=`date -d "-1 day" +%Y%m%d` BEGIN_DATE=`date -d "-1 day" +%Y-%m-%d` END_DATE=`date -d "-1 day" +%Y-%m-%d`
  3. /* 根据指定的时间去获取日期时间,format_day格式为 20171204 */
  4. format_day=`echo $1|grep -o '[0-9]\{8\}'` format_hour=`echo $1|grep -o '[0-9]\{2\}$'` CUR_DATE=`date -d "$format_day" +%Y-%m-%d` CUR_PARTITION=`date -d "$format_day" +%Y%m%d` LAST_MONTH=`date -d "${format_day} -1 month" +%Y%m` BEGIN_DATE=`date -d "${format_day}" +%Y-%m-%d` END_DATE=`date -d "${format_day}" +%Y-%m-%d` BEGIN_PARTITION=`date -d "${format_day}" +%Y%m%d` END_PARTITION=`date -d "${format_day}" +%Y%m%d`

获取指定开始结束时间内的所有日期

会循环例举所有的自然月天数,日期按照标准天数,比如2月只到28/29号

  1. #!/bin/bash
  2. #以天做循环
  3. #20170101 20170103
  4.  
  5. stime=$1
  6. etime=$2
  7. while :
  8. do
  9. stime=$(date -d "$stime 1day" +%Y%m%d)
  10. echo $stime
  11. if [[ $stime -gt $etime ]]; then
  12. break;
  13. fi
  14. done

举例:

  1. sh getDate.sh 20170125 20170416
  2. 运行结果:
  3. 20170126
  4. ...
  5. 20170228
  6. 20170301
  7. 20170302
  8. ...
  9. 20170416
  10. 20170417
改善脚本,使得打印出来的时间在输入时间范围之内(包括输入的时间)
  1. #!/bin/bash
  2. #以天做循环
  3. #20170101 20170103
  4.  
  5. stime=$1
  6. etime=$2
  7. while :
  8. do
  9. stime=$(date -d "$stime 1day" +%Y%m%d)
  10. format_day=`echo $stime|grep -o '[0-9]\{8\}'`
  11. result_day=`date -d "${format_day} -1 day" +%Y%m%d`
  12. echo $result_day
  13. if [[ $result_day -eq $etime ]]; then
  14. break;
  15. fi
  16. done
  17.  
  18. 测试: sh getDate.sh 20170129 20170302
  19. 20170129
  20. 20170130
  21. ...
  22. 20170228
  23. 20170301
  24. 20170302

猜你在找的Bash相关文章