2014-09-15 3 views
1

나는 사용자가 입력 한 시간을 저장하는 데 사용되는 두 개의 문자열을 파이썬에서 가지고있다. 형식은 hh : mm : ss입니다. 예 : 09:17:34두 문자열 간의 차이를 초 단위로 가져 오는 방법은 무엇입니까?

이 두 시간의 차이를 초 단위로 찾는 가장 쉬운 방법은 무엇입니까? 시간은 항상 같은 날이기 때문에 자정 중복에 대해 걱정할 필요가 없습니다.

문자열 자르기를 사용하여 관련 숫자를 추출한 다음 datetime.datetime()을 사용하면 각각 datetime 개체를 설정할 수 있습니다 , 그러나 나는 그것뿐만 아니라 시간을 가지고 줄 필요가있다.

나는 time 모듈을 가지고 놀았지만, timedelta 오브젝트에서 .total_seconds을 사용하는 방식의 차이점을 쉽게 해결할 방법이없는 것 같습니다.

더 쉬운 방법이 있습니까?

+4

왜 그들은 의미있는 표현으로 변환 - 숫자 또는 날짜처럼? – Makoto

+3

은'strptime'에 대한 직업처럼 보입니다 – inspectorG4dget

답변

4

두 시간 문자열에서 datetime.datetime.strptime()을 직접으로 사용하십시오. 시간 구성 요소 만 구문 분석 할 때 기본 날짜 (1900-01-01)가 사용됩니다.

time1 = datetime.datetime.strptime(timestring1, '%H:%M:%S') 
time2 = datetime.datetime.strptime(timestring2, '%H:%M:%S') 
difference = time2 - time1 
+0

고마워, 그거 대단 하네 .-) –

3

당신은 strptime으로이 작업을 수행 할 수 있습니다

from datetime import datetime 
t1 = datetime.strptime("02:03:04", "%H:%M:%S") 
t2 = datetime.strptime("05:08:06", "%H:%M:%S") 
t2 - t1 
# datetime.timedelta(0, 11102) 
(t2 - t1).seconds 
# 11102 
관련 문제