这是我收到的字符串:00:03:30.877615
这是小时,分钟和秒。
我想要做的是将相同的字符串格式化为:3:30
我基本上想要分钟(没有前导零)和整秒。
字符串大部分都是相同的,但小数位的长度可能会改变。
答案 0 :(得分:2)
“ - ”在分钟内取出前导零。
>> require 'time'
=> []
>> t = Time.parse('00:03:30.877615')
=> 2012-01-12 00:03:30 -0800
>> t.strftime("%-m:%S")
=> "1:30"
答案 1 :(得分:1)
你有几个选择。如果你知道你的起始字符串总是具有相同的长度/结构,你可以做一个简单的字符串变换:
start_time = '00:03:30.877615'
mins_and_secs = start_time[3..7]
mins_and_secs = mins_and_secs[1..-1] if mins_and_secs[0] == '0'
这将是最快的选择。如果您期望更多变体,则可以实际创建Time object,然后使用#strftime。
答案 2 :(得分:0)
reg = /\d\d:(\d\d):(\d\d).*/
if m = reg.match(s)
"#{ m[1].to_i }:#{ m[2] }"
end