Ruby/Направляющие - Как преобразовать секунды во время?

Я должен выполнить следующее преобразование:

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

Каков был бы самый оптимальный, часовой пояс независимое решение для этого преобразования?

10
задан Vincent 18 October 2010 в 22:30
поделиться