我正在尝试从当前时间获得小时,分钟和秒,并将其打印为“hourminutesecond”格式。例如“121103”。但是当我尝试用下一个代码
时,没有打印前导零irb(main):021:0> ct = Time.now
=> 2012-11-06 12:11:03 +0100
irb(main):022:0> "#{ct.hour}#{ct.min}#{ct.sec}"
=> 12113
输出为“12113”,但我想要“121103”。
是否有方法或选项。我可以用正则表达式提取它,但只是想知道是否有更简单的方法来做它。
答案 0 :(得分:5)
您应该使用time formatting:
ct = Time.now
ct # => Tue Nov 06 15:31:03 +0400 2012
ct.strftime('%H%M%S') # => "153103"
答案 1 :(得分:2)
你应该接受Sergio的答案,因为这是处理日期/时间对象的正确方法。
但是,如果必须使用String类,则可以使用rjust方法添加前导零。
"#{ct.hour}#{ct.min}#{ct.sec}" # 12113
"#{ct.hour}#{ct.min}#{String(ct.sec).rjust(2,"0")}" # 121103