MENU

TimeWithZoneオブジェクトを指定した期間で1時間ごとにstrftime("%Y-%m-%d %H:%M:%S")のフォーマットで配列にする

やりたいこと

 TimeWithZoneオブジェクトを指定した期間で1時間ごとにstrftime("%Y-%m-%d %H:%M:%S")のフォーマットで配列にしたい。  

サンプル

start_at = Time.zone.parse("2021-04-09 00:00:00 +09:00")
end_at = Time.zone.parse("2021-04-09 23:00:00 +09:00")

time_range = []

while start_at <= end_at do
  time_range << start_at.strftime("%Y-%m-%d %H:%M:%S")
  start_at += 1.hour
end

time_range

メモ

  • ループのためにstart_atを書き変えているのはちょっと気持ち悪い。
  • 1日ごとのループだったら以下のようにできるらしい。 qiita.com