Bash列表两个日期之间的日期时间

时间:2016-07-20 13:36:23

标签: linux bash shell

如何以"+%Y-%m-%d %H:%M:%S"格式列出所有日期时间?

这只打印日期,但我也希望包含时间,即2016-07-20 08:33:21

start=2013-09-05 
end=2013-09-11

   while [[ $start < $end ]] 
     do 
      printf "$start\n"; start=$(date -d "$start + 1 day" +"%Y-%m-%d") 
     done

2 个答案:

答案 0 :(得分:0)

你可以试试这个;

#!/bin/bash
start=2013-09-05 
end=2013-09-11

while [[ $start < $end ]] 
 do 
   start=$(date -d "$start + day + minute" +"%Y-%m-%d %H:%M:%S") 
   printf "$start\n"; 
 done

答案 1 :(得分:0)

希望这个可以帮到你:

#!/bin/bash

start="2016-07-20 08:33:50"
end="2016-07-20 08:34:01"

while [[ $start < $end ]]; do
    echo $start
    secs=$(date +%s --date="$start")
    start=$(date '+%Y-%m-%d %H:%M:%S' --date="@$((secs + 1))")
done

输出:

2016-07-20 08:33:50
2016-07-20 08:33:51
2016-07-20 08:33:52
2016-07-20 08:33:53
2016-07-20 08:33:54
2016-07-20 08:33:55
2016-07-20 08:33:56
2016-07-20 08:33:57
2016-07-20 08:33:58
2016-07-20 08:33:59
2016-07-20 08:34:00