Что такое самый простой способ конвертировать военное (24-часовое время) в формат HH: MM в Ruby?Преобразование военного времени в Ruby
У меня есть два значения времени 24 часа, сохраненные в записи, и я хочу, чтобы отобразить их в представлении как нечто вроде «2:00 - 4:00», когда, начиная с двух целых чисел, скажем, 1400 и 1600.
Мой хак-й решение было создать вспомогательную функцию:
def format_time(time)
if (time-1200 < 1000)
if (time-1200 < 100)
return time.to_s.insert(2, ":")
else
return (time-1200).to_s.insert(1, ":")
end
else
return (time-1200).to_s.insert(2, ":")
end
end
Я даже не уверен, что все время работает. Я предполагаю, что есть лучший способ сделать это.
UPDATE: Мне также нужно это для работы с значениями, которые не заканчиваются на '00'. IE 1430 или 830.
Это не сработало для меня. Получил ошибку «no method error», пытающуюся вызвать Time.strptime. Примечание: в этом проекте используется Ruby 1.8.7 –
Я добавил версию с DateTime. Я думаю, что это будет работать и с ruby 1.8 (извините, я не могу проверить его сам) – knut