Java 8: 두 LocalDateTime 인스턴스 간의 시간 차이 확인
Java 8에서 LocalDateTime 클래스는 시간대 없이 날짜와 시간을 나타냅니다. . 두 LocalDateTime 인스턴스 간의 차이를 계산하려면 Period 및 Duration 클래스를 사용할 수 있습니다. 그러나 코드에서 월 값 이후에 잘못된 결과가 나타납니다.
원래 구현의 잘못된 코드:
문제는 getTime() 메서드, 특히 시간, 분, 초 계산:
Duration duration = Duration.between(today, now); long seconds = duration.getSeconds(); long hours = seconds / SECONDS_PER_HOUR; long minutes = ((seconds % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE); long secs = (seconds % SECONDS_PER_MINUTE);
이 접근 방식은 기간이 항상 양수라고 가정하기 때문에 올바르지 않습니다. fromDateTime이 toDateTime보다 큰 경우 발생하는 음수 값을 처리하지 못합니다.
ChronoUnit을 사용한 대체 접근 방식:
음수가 있는 경우를 포함하여 LocalDateTime 인스턴스 간의 차이를 정확하게 계산하려면 가치가 있는 경우 ChronoUnit을 사용하는 것이 더 좋습니다. enum:
long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime); long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime);
ChronoUnit은 연, 월, 일, 시, 분, 초 등 다양한 시간 단위로 차이를 계산하는 방법을 제공합니다. 양수 값과 음수 값을 모두 올바르게 처리합니다.
ChronoUnit을 활용하면 코드가 모든 시나리오에 대해 정확한 결과를 제공합니다.
위 내용은 두 Java 8 LocalDateTime 인스턴스 간의 시간 차이를 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!