구문 분석이
는 두 개의 입력에 대해이 작업을 수행합니다. 문서에 따르면이 형식은 hh : mm 형식 (hhmmFormatter 인스턴스에서 정의한대로)과 일치하지 않을 경우 DateTimeParseException을 throw하여 사용자가 원하는대로 처리하고 처리 할 수 있도록합니다.
hhmmFormatter 당신은 DateTimeFormatter.ofPattern를 사용하여 직접 만들 수 있지만 단순히 완벽하게 귀하의 케이스에 맞는 표준
DateTimeFormatter.ISO_LOCAL_TIME
를 사용하는 것이 좋습니다 것입니다. 더 자세한 사항은 여기에 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_LOCAL_TIME
그래서 당신은 단순히 당신이 처리하기를 원한다면 당신은 귀하의 질문에주의하지 않았다
주 (TimeUnit와 https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html에 대한 설명서)
try {
// NOTE: you can move these into their own try/catch so you can handle bad user input separately if you wish
final LocalTime time1 = LocalTime.parse(userInput1, DateTimeForamatter.ISO_LOCAL_TIME);
final LocalTime time2 = LocalTime.parse(userInput2, DateTimeForamatter.ISO_LOCAL_TIME);
final long differenceInNanos = (time2.toNanoOfDay() - time1.toNanoOfDay());
final long differenceInSeconds = TimeUnit.NANOSECONDS.toSeconds(differenceInNanos)
}
catch(DateTimeParseException e){
// TODO code to handle bad user input
}
을 할 수있는 경우 사용자가 수 맡았다 며칠에 걸쳐 시간을 지정하므로 LocalTime 만 보여줄 것입니다. 이것을 가장 일반적인 ZonedDateTime 케이스로 쉽게 변환 할 수 있으며 매우 유사한 작업을 수행 할 수 있습니다.
가장 좋은 이유는 _long_에서 차이점을 찾거나 _Joda_ library를 사용할 수 있기 때문입니다. – Piyush