2016-06-16 8 views
0

duration을 밀리 초로 변환하고 싶습니다. ": MM : SS HH"그래서 시간 표현의 형식입니다기간을시, 분, 초로 어떻게 포맷합니까?

Time.parse(duration_expr).seconds_since_midnight * 1000 

하는이 표현을 ...있다. 그러나 지속 기간 표현식이 "MM : SS"또는 "SS"형식 인 경우 위의 값은 정확한 밀리 초 수를 산출하지 못합니다. "MM : SS"또는 "SS"와 같은 표현식을 "HH : MM : SS"로 변환하려면 어떻게해야합니까?

레일 4.2.3을 사용하고 있습니다. 감사합니다, - Dave

답변

0

def convert_to_hrs(string) 
    case string.count(':') 
    when 0 
    '00:00:' + string.rjust(2, '0') 
    when 1 
    '00:' + string 
    else 
    string 
    end 
end 
[30] pry(main)> convert_to_hrs('1') 
=> "00:00:01" 
[31] pry(main)> convert_to_hrs('12:01') 
=> "00:12:01" 
[32] pry(main)> convert_to_hrs('12:12:01') 
=> "12:12:01" 
시도
0

왜 그냥 문자열을 채울 수 없습니까? 즉, 5 자 길이라면 앞에 "00 :"을 붙이고 2 자이면 앞에 "00:00 :"을 붙이십시오. Time.parse 둘 다 잘 작동합니다.

정규 표현식과 문자열 포맷터를 사용하는 것이 더 확실한 방법이지만 확실한 기본 논리입니다. (당신의 형식만큼 여기에 함축보다 더 복잡하지 않을 수 있습니다.)

관련 문제