>Java >java지도 시간 >두 Java 8 LocalDateTime 인스턴스 간의 시간 차이를 정확하게 계산하는 방법은 무엇입니까?

두 Java 8 LocalDateTime 인스턴스 간의 시간 차이를 정확하게 계산하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-06 05:28:14518검색

How to Accurately Calculate Time Differences Between Two Java 8 LocalDateTime Instances?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.