2012-11-30 3 views
0

사용자로부터 1 시간 30 분을 얻으려고합니다.입력에서 시간을 처리하는 가장 좋은 방법

date = raw_input("enter date (example: 25/12/1990) ") 
hour = raw_input("enter hour (example: 20:00) ") 

그건 내가 그 짓을,하지만이 그것을 구현하는 좋은 방법이 아니라고 생각하는 방법이다.
입력이 끝나면 입력 된 시간과 현재 시간을 비교하고 싶습니다.
time 파이썬 모듈을 사용할 계획입니다.

무엇을 제안하겠습니까?

+1

예제 시간이 그리 좋지 않습니다. 너의 데이트도 아니야. 물론 12/25/1990과 14:25의 샘플을 제안 할 것이므로 물론 반대가 아닌 한 MM/DD/YYYY라는 것이 확실합니다. 시간에, 이것은 당신이 24 시간 시계를 사용하려는 것을 보여줍니다. 물론 24 시간 시계를 원하지 않으면 AM/PM을 지정해야합니다. – jgritty

+0

@jgritty 당신 말이 맞아요. 나는 이것을 업데이트했다. – Lior

+1

날짜와 시간 문자열을 처리하기 위해'strptime'을보십시오 .... –

답변

1

위의 예는 문자열로 날짜를 제공합니다. 해당 문자열을 datetime 개체로 변환하고 발생하는 모든 오류를 처리해야합니다. 당신은 간단한 날짜에 사용자를 제한하는 경우에 당신은이처럼 날짜 모듈과 모든 작업을 수행 할 수 있습니다

>>> import datetime 
>>> date = "15/03/2012" 
>>> datetime.datetime.strptime(date, "%d/%m/%Y") 
datetime.datetime(2012, 3, 15, 0, 0) 
>>> hour = "13:01" 
>>> datetime.datetime.strptime(hour, "%H:%M") 
datetime.datetime(1900, 1, 1, 13, 1) 
>>> datetime.datetime.strptime(date + " " + hour, "%d/%m/%Y %H:%M") 
datetime.datetime(2012, 3, 15, 13, 1) 

>>> date = "1/4/2012" 
>>> hour = "3:01" 
>>> datetime.datetime.strptime(date + " " + hour, "%d/%m/%Y %H:%M") 
datetime.datetime(2012, 4, 1, 3, 1) 

당신은 현재 날짜와 시간을 얻을 같은 일을하는 다른 날짜 모듈의 코드를 사용하거나 차이를 찾을 수 두 날짜 또는 시간 사이.

+0

감사합니다. 날짜 모듈을 사용해야하지만, strptime의 개념을 이해했으며 이제는 사용할 수있게되었습니다. – Lior

+0

'날짜'모듈이 없으므로 '시간'모듈을 사용해야한다는 뜻입니다. 왜? datetime 모듈은 거의 유스 케이스를위한 최상의 내장 모듈입니다. –

+0

예, 제 잘못입니다. 이 모듈은이 모듈로 작업하는 것을 연습하기위한 것입니다. – Lior

0

내가 본 최고의 솔루션 중 하나 인 dateutil 패키지는 parse() 파서 모듈을 가지고 있으며 문자열에서 날짜/시간을 추출하려고합니다. 예를보세요 here.

+0

고마워,하지만 빌트인 날짜 모듈을 사용해야 해. – Lior

관련 문제