2

我正在尝试从当前时间获取小时、分钟和秒,并将其打印为“小时分钟秒”格式。例如“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”。

是否有方法或选项。我可以用正则表达式提取它,但只是想知道是否有更简单的方法。

4

2 回答 2

5

您应该使用时间格式

ct = Time.now
ct # => Tue Nov 06 15:31:03 +0400 2012
ct.strftime('%H%M%S') # => "153103"
于 2012-11-06T11:29:25.877 回答
2

您应该接受 Sergio 的回答,因为这是处理日期/时间对象的正确方法。

但是,如果您必须使用 String 类执行此操作,则可以使用rjust方法添加前导零。

"#{ct.hour}#{ct.min}#{ct.sec}" # 12113
"#{ct.hour}#{ct.min}#{String(ct.sec).rjust(2,"0")}" # 121103
于 2012-11-06T11:55:11.063 回答