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

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

Linda Hamilton
Linda Hamilton원래의
2024-12-04 09:48:11148검색

How to Accurately Calculate the Number of Days Between Two Joda-Time Dates?

Joda-Time 날짜 사이의 날짜 계산

Joda-Time으로 작업할 때 두 날짜 사이의 날짜 차이를 확인해야 하는 경우가 많습니다. . Days.daysBetween 방법은 솔루션을 제공하지만 일광 절약 시간(DST) 조정을 항상 올바르게 처리하는 것은 아닙니다.

정확한 날짜 계산을 보장하려면 다음 접근 방식을 사용하세요.

Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays()

이 코드는 toLocalDate()를 사용하여 시작 및 종료 DateTime 인스턴스를 LocalDate로 변환하고 시, 분, 초를 효과적으로 무시합니다.

DST 모호성이 있는 예

DST 모호성이 있는 다음 예를 고려하십시오.

// 5am on October 20th to 1pm on October 21st, 2013, Brazil
DateTimeZone BRAZIL = DateTimeZone.forID("America/Sao_Paulo");
DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, BRAZIL);
DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, BRAZIL);

// Using withTimeAtStartOfDay()
System.out.println(Days.daysBetween(start.withTimeAtStartOfDay(),
                                   end.withTimeAtStartOfDay()).getDays());

// Using toLocalDate()
System.out.println(Days.daysBetween(start.toLocalDate(),
                                   end.toLocalDate()).getDays());

withTimeAtStartOfDay()를 사용하면 잘못된 응답이 발생합니다. 0, toLocalDate() 메서드는 올바르게 1을 반환합니다.

LocalDate로 변환하여 DST로 인한 모호성을 제거하고 보다 정확한 일수 차이를 얻습니다. 이 접근 방식은 시간대나 일광 절약 시간제 고려 사항에 관계없이 일관된 결과를 보장합니다.

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

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