Мне нужно выполнить следующее преобразование:
0 -> 12.00AM
1800 -> 12.30AM
3600 -> 01.00AM
...
82800 -> 11.00PM
84600 -> 11.30PM
Я придумал это:
(0..84600).step(1800){|n| puts "#{n.to_s} #{Time.at(n).strftime("%I:%M%p")}"}
что дает мне неправильное время, потому что Time.at (n) ожидает, что n будет числом секунд от эпохи:
0 -> 07:00PM
1800 -> 07:30PM
3600 -> 08:00PM
...
82800 -> 06:00PM
84600 -> 06:30PM
Что было бы наиболее оптимальным, независимым от часового пояса решением для этого преобразования?