在Ruby中将时间字符串转换为适当的格式

在Ruby中将时间字符串转换为适当的格式,ruby,string,datetime,time,Ruby,String,Datetime,Time,我试图在Ruby中将以下字符串转换为适当的时间 例如 string_a = "1 minute, 6 seconds" string_b = "3 minutes, 35 seconds" 我正在努力实现的是 转换:string_a为时间格式:1:06-因为它只有6秒,在它前面加0。 并将_b字符串转换为时间格式:3.35 请有人帮我一下好吗?假设输入字符串的格式始终相同: time = string_a.scan(/\d+/) time[0] + ":" + time[1].r

我试图在Ruby中将以下字符串转换为适当的时间

例如

 string_a = "1 minute, 6 seconds"   
 string_b = "3 minutes, 35 seconds" 
我正在努力实现的是

转换:string_a为时间格式:1:06-因为它只有6秒,在它前面加0。 并将_b字符串转换为时间格式:3.35


请有人帮我一下好吗?

假设输入字符串的格式始终相同:

time = string_a.scan(/\d+/)
time[0] + ":" +  time[1].rjust(2,'0')
# => "1:06"

string_b = "3 minutes, 35 seconds"
timeb = string_b.scan(/\d+/)
timeb[0] + ":" +  timeb[1].rjust(2,'0')
# => "3:35"

您可以使正则表达式更严格,但是如果输入字符串始终采用m分s秒格式,那么这就足够了。

在这种情况下,字符串a可以正常工作,因为它以秒为单位。但是在string_b中,我们有2个数字,以秒为单位。根据上面的代码,我得到的字符串是:`3:0`而不是3:35。@初学者\u yaml\u用户您一定做错了什么。这对我来说很好。我在回答中也更新了string_b示例。请重新检查。我尝试使用扫描,然后尝试分别处理每个字符串。但我计划做一种函数,这样我就可以传递字符串,并根据它得到转换后的字符串。例如,1分钟0秒=1:0 2分钟2秒=2:02和3分钟34秒=3:34