Как получить 2-значный час и минуты из Rails-класса времени

Я смотрю

http://corelib.rubyonrails.org/classes/Time.html#M000245

как я могу получить двухзначный час и минуты от объекта времени

Давайте скажем, что я делаю

t = Time.now

t.hour // this returns 7 I want to get 07 instead of just 7

для

t.min //  // this returns 3 I want to get 03 instead of just 3

Спасибо

Ответ 1

Как насчет использования String.format (%) оператора? Вот так:

x = '%02d' % t.hour
puts x               # prints 07 if t.hour equals 7

Ответ 2

Возможно, стоит посмотреть Time # strftime, если вы хотите поместить свое время вместе в читаемую строку или что-то в этом роде.

Например,

t = Time.now
t.strftime('%H')
  #=> returns a 0-padded string of the hour, like "07"
t.strftime('%M')
  #=> returns a 0-padded string of the minute, like "03"
t.strftime('%H:%M')
  #=> "07:03"

Ответ 3

Вы можете попробовать это!

Time.now.to_formatted_s(:time)

Ответ 4

Стоит отметить, что вы можете хотеть часы для определенного часового пояса.

Если часовой пояс уже установлен (либо глобально, либо вы находитесь внутри блока):

Time.current.to_formatted_s(:time)

Для установки часового пояса:

Time.current.in_time_zone(Location.first.time_zone).to_formatted_s(:time)

Ответ 5

Во всяком случае, to_formatted_s на самом деле является псевдонимом to_s.

 Time.now.to_s(:time)