如何从Rails时间等级获得2位数小时和分钟

时间:2012-07-03 16:26:25

标签: ruby-on-rails datetime

我在看

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

由于

5 个答案:

答案 0 :(得分:27)

如果你想把你的时间放在一个可读的字符串或类似的东西中,可能值得研究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"

答案 1 :(得分:19)

如何使用String.format(%)运算符?像这样:

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

答案 2 :(得分:10)

你可以试试这个!

Time.now.to_formatted_s(:time)

答案 3 :(得分:0)

值得一提的是,您可能需要特定时区的小时数。

如果已设置时区(无论是全局时区,还是您位于某个街区中):

Time.current.to_formatted_s(:time)

要设置时区内联:

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

答案 4 :(得分:0)

就其价值而言,to_formatted_s实际上是to_s的别名。

 Time.now.to_s(:time)