Java에서 그렇습니다. 사용자에게 24 시간 형식으로 시간을 요청하고 싶습니다. 나는 DateFormat
과 SimpleDateFormat
을 사용하여 시간이 입력되는 형식을 알려주고 그 결과를 해석하여 형식을 따르지 않으면 예외를 throw합니다. 다음은 내가 가지고있는 것입니다.유효한 시간 만 허용
DateFormat fmt = new SimpleDateFormat("HH:mm");
Scanner keyboard = new Scanner(System.in);
try {
String input = keyboard.nextLine();
Date theDate = fmt.parse(input);
System.out.println(theDate.toString());
} catch (ParseException e) {
System.out.println("Incorrect format!");
e.printStackTrace();
}
단어를 입력하면 실제로 예외가 발생합니다. 그러나, 내가 234234:2342342
과 같은 것을 타이핑하면, 실제적으로 그 시간과 분이 얼마나 많은 날이 몇일인지를 알아 내고, 실제 날짜를 출력하는 수학을 계산합니다. 예를 들어, 주어진 입력 :
input: 23423423:232323
output: Fri Jul 29 07:03:00 PDT 4642
예외로 취급하는 방법이 있는지 궁금합니다. 따라서 형식 지정자가 지정하는 내용 (H 0-23 및 m 0-59) 만 허용하고,이 경계 내에 있지 않으면 예외를 던지거나 알 수있는 방법이 필요합니다. 내가 알고 싶은 것은 내가 사용하고있는 포맷터 클래스에서 이것을 수행하는 방법이 있는지 아니면 Scanner 클래스를 사용하여 수행해야하는지 (어떻게?), 아니면 구문 분석 및 유효성 검사 코드를 직접 작성해야하는지 여부입니다. . 내가 완전히 틀린이 접근인가? 나는 현재 가능성을 시험 중입니다. 더 나은 방법이 있다면 알려주세요.
감사합니다.
나는 당신이 자기를 얻을에 대한라고 생각을 던졌습니다 -Learner badge :) – Dolph