>Java >java지도 시간 >두 Joda-Time 날짜 간의 일차를 정확하게 계산하는 방법은 무엇입니까?

두 Joda-Time 날짜 간의 일차를 정확하게 계산하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-01 14:59:15937검색

How to Accurately Calculate the Day Difference between Two Joda-Time Dates?

Joda-Time 날짜 간의 날짜 차이 계산

Joda-Time에서 두 날짜의 날짜 차이를 결정하려면 시간 불일치를 고려해야 합니다. . 일수를 정확하게 계산하려면 시, 분, 초를 무시해야 합니다.

Days.daysBetween을 사용한 기존 솔루션

Days.daysBetween 메소드가 나타납니다. 적절한 솔루션을 제공하기 위해 노력하지만 한 날짜가 저녁이고 다른 날짜가 아침이면 문제가 발생합니다. 이는 일부 시간대에서 "일의 시작"이 자정이 아닌 오전 1시를 모호하게 나타낼 수 있는 경우 때문입니다.

LocalDate를 사용한 정확한 계산

이 모호함을 피하려면 , Days.daysBetween과 함께 DateTime 대신 LocalDate를 사용하는 것이 좋습니다. LocalDate는 시간 정보 없이 날짜를 나타내므로 결과에 일수 차이만 반영됩니다.

다음 예를 고려하세요.

DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, DateTimeZone.forID("America/Sao_Paulo"));
DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, DateTimeZone.forID("America/Sao_Paulo"));

int daysBetween = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();

System.out.println(daysBetween); // Prints 1

결론

사용하여 LocalDate를 사용하면 날짜 차이 계산이 정확해져서 시간대 변화로 인한 불일치와 시차로 인해 시작 날짜와 종료 날짜가 서로 다른 날짜에 걸쳐 있을 가능성이 제거됩니다.

위 내용은 두 Joda-Time 날짜 간의 일차를 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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