范围内日期的输出格式,使用bash



我正试图使用bash生成一个起点和终点之间的日期和时间列表。

我希望输出为mm/dd/yyyy hh:mm格式。

在命令行上,命令:

date +"%m/%d/%Y %H:%M"

产生我正在寻找的输出。

当我使用当前被注释掉的行时,我会得到一个错误。

date: extra operand ‘%H:%M’
Try 'date --help' for more information.

我不知道如何修改脚本以产生我想要的输出。

DATE=date
#FORMAT="%m/%d/%Y %H:%M"
FORMAT="%m/%d/%Y"
start=`$DATE +$FORMAT -d "2013-05-06"`
end=`$DATE +$FORMAT -d "2013-09-16"`
now=$start
while [[ "$now" < "$end" ]] ; do
  now=`$DATE +$FORMAT -d "$now + 1 day"`
  echo "$now"
done

我试过在开始和结束时间后加一个00:00,但没有奏效。

你知道我在哪里把输出格式搞错了吗?

代码来源:https://ocroquette.wordpress.com/2013/04/21/how-to-generate-a-list-of-dates-from-the-shell-bash/

当您使用FORMAT="%m/%d/%Y %H:%M"时,您需要引号,因为它包含空格,所以:

now=`$DATE +"$FORMAT" -d "$now + 1 day"`

此外,我不认为你可以比较这样的日期。您可能需要时间戳:

date +%s

最新更新