2013-03-17 3 views
0
>>> x 
['00:05:09.252', '00:05:42.244', '00:06:44.546'] 

이 문자열 항목을 'hh : mm : ss.uuu'시간 형식으로 변환하면 어떻게하면이 형식으로 시간을 계산할 수 있습니까?문자열을 시간 형식으로 변환

나는이 문서를 읽었지만 datetime 및 다양한 시간대의 컨텍스트에서 모든 것이 설명되는 것처럼 보였습니다.이 작업을 위해 자체 함수를 작성하지 않고 시간 형식으로 계산하고 싶습니다.

답변

2

데이터가 엄격하게 hour:min:sec.usec

에 포맷 주어진

(그들은 파이썬 strptime에서 마이크로 다루는 directives을 가지고, 그래서 당신은 datetime.time의 생성자에 값을 직접 제공 할 필요가 생각하지 않는 모양)
import datetime 
def timeconverter(timestring): 
    hour, min, sec = timestring.split(':') 
    sec, usec = sec.split('.') 
    time = datetime.time(*[int(x, 10) for x in (hour, min, sec, usec)]) 
    return time 
+0

필자는 어떻게 든 파이썬에서의 시간 조작이 더 간단 할 것으로 예상했다. 변환 기능을 제공해 주셔서 감사합니다 – user2136786

+0

@ user2136786 사용법이 없으면 간단 할 것입니다 : D – thkang

+0

예, 파이썬에는 그러한 포매터가없고 마이크로 초 동안있을 것 같습니다. 그래서, 계산을 한 후에,이 시간 객체를 읽을 수있는 형식으로 변환하고 싶다면 변환기를 마이크로 초 또는 아마도 다른 무언가로 변경하지 않고 다시 만들 수는 없습니다 – user2136786

0

시간 모듈에서 strptime을 확인하십시오.

import time 
t= time.strptime("00:05:42.244", "%H:%M:%S") 

초의 소수 부분을 신경 쓰지 않으면 이것을하십시오. 당신이 신경 쓰는 경우 thkang에 의해 사용되는 approch가 더 나은 솔루션입니다.

+0

'datetime.strptime ('00 : 05 : 42.244 ', "% H : % M : % S. % f")' >'datetime.datetime (1900, 1, 1, 0, 5, 42, 244000)'이 있습니다. 'datetime.time' 객체를 얻으려면'.time()'메서드를 사용할 수 있습니다. 참고 : 시간대 문제는 무시됩니다. – jfs

관련 문제