将Ruby中的持续时间 - hh:mm:ss.sss转换为毫秒,反之亦然

her*_*err 7 ruby time

我想知道Ruby中是否有内置方法允许我将hh:mm:ss.sss格式的单圈时间转换为毫秒,反之亦然.由于我需要对它进行一些计算,我认为转换为毫秒是最简单的方法.告诉我,如果我错了:)

Jon*_*röm 8

这个怎么样?

a=[1, 1000, 60000, 3600000]*2
ms="01:45:36.180".split(/[:\.]/).map{|time| time.to_i*a.pop}.inject(&:+)
# => 6336180
t = "%02d" % (ms / a[3]).to_s << ":" << 
    "%02d" % (ms % a[3] / a[2]).to_s << ":" << 
    "%02d" % (ms % a[2] / a[1]).to_s << "." << 
    "%03d" % (ms % a[1]).to_s
# => "01:45:36.180"
Run Code Online (Sandbox Code Playgroud)