简体   繁体   中英

Date time incermentor in bash script

I want to print a value[1 hour increment] like this for yesterday date in bash script. Please help Output like below.

FROM_DATE : 2018-04-23T000000Z TO_DATE : 2018-04-23T005959Z
FROM_DATE : 2018-04-23T010000Z TO_DATE : 2018-04-23T015959Z
FROM_DATE : 2018-04-23T020000Z TO_DATE : 2018-04-23T025959Z

My code: I'm able to fetch hour using below code. I can't able to do for minutes

start='date +%s'

FROM_DATE=$(date -d "1 day ago" +%Y-%m-%d"T"%H%M%S"Z")

for i in {0..23}

do 
    start='date +%s'

    FROM_DATE=$FROM_DATE

    TO_DATE=$(date +%Y-%m-%d"T"%H%M%S"Z" -d "1 day ago""$date + $i hour")

     echo "FROM_DATE : $FROM_DATE"

     echo "TO_DATE : $TO_DATE"

     FROM_DATE=$TO_DATE

done 

[Update Code] - Giving correct output, Please let me know for any optimization or modification -

start='date +%s'

FROM_DATE=$(date -d "1 day ago" +%Y-%m-%d"T"%H"0000""Z")

for i in {0..5}

do 
  echo "FROM_DATE : $FROM_DATE"

  TO_DATE=$(date +%Y-%m-%d"T"%H"5959""Z" -d "1 day ago""$date + $i hour")

  echo "TO_DATE : $TO_DATE"

  FROM_DATE=$(date +%Y-%m-%d"T"%H"0000""Z" -d "1 day ago""$date + $i hour""$date + 1 hour")

done 

Adding minutes works similarly to what you did with hours:

TO_DATE=$(date +%Y-%m-%d"T"%H%M%S"Z" -d "1 day ago""$date + $i minutes")

See also this question .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM