我正在使用Rails 5.我有一个方法可以帮助以更可读的格式(小时:分钟:秒)显示一个duraiton毫秒......
def time_formatted time_in_ms
regex = /^(0*:?)*0*/
Time.at(time_in_ms/1000).utc.strftime("%H:%M:%S").sub!(regex, '')
end
这种方法基本上很好,但是当毫秒级的时间包含几分之一秒时,它不能完全准确地工作。也就是说,如果以毫秒为单位的时间是
2486300
以上显示
41:26
但实际上它应该显示
41:26.3
我如何调整我的功能,这样它也会显示几分之一,假设有任何?
答案 0 :(得分:1)
to_f
执行此操作)。strftime
".%1N"
,持续1位毫秒。def time_formatted time_in_ms
regex = /^(0*:?)*0*/
Time.at(time_in_ms.to_f/1000).utc.strftime("%H:%M:%S.%1N").sub!(regex, '')
end
time_formatted 2486300
#=> "41:26.3"
有关更多信息,请参阅官方Ruby文档中的Time#strftime
。