LocalDateTime 개체 간의 시간 차이 계산
문제를 해결하려면 두 LocalDateTime 개체 간의 시간 차이를 계산하는 포괄적인 접근 방식이 필요합니다. 여러 단위로 시간 범위를 나타냅니다.
Java 8 API는 처리할 Period 및 Duration 클래스를 제공합니다. 이것을 효과적으로. Period는 연, 월, 일 단위의 시간 간격을 나타내고 Duration은 시, 분, 초를 나타냅니다.
기존 코드에서는 Period와 Duration을 활용하여 시간 차이를 결정하지만 약간의 수정이 있습니다. 필수의. 업데이트된 코드는 다음과 같습니다.
import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.Period; import java.time.ZoneId; public class Main { static final int MINUTES_PER_HOUR = 60; static final int SECONDS_PER_MINUTE = 60; static final int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR; public static void main(String[] args) { LocalDateTime toDateTime = LocalDateTime.of(2014, 9, 9, 19, 46, 45); LocalDateTime fromDateTime = LocalDateTime.of(1984, 12, 16, 7, 45, 55); Period period = Period.between(fromDateTime, toDateTime); long seconds = Duration.between(fromDateTime, toDateTime).getSeconds(); long hours = seconds / SECONDS_PER_HOUR; long minutes = ((seconds % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE); long secs = (seconds % SECONDS_PER_MINUTE); System.out.println(period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days " + hours + " hours " + minutes + " minutes " + secs + " seconds."); } }
여기서 중요한 변경 사항은 Duration.between(fromDateTime, toDateTime).getSeconds();를 사용하는 것입니다. 초 차이를 계산합니다. 이렇게 하면 자정을 넘거나 음수 값이 있는 시간 범위를 처리할 때 정확도가 보장됩니다.
음수가 포함된 경우 Duration은 이를 올바르게 처리하여 시간 차이를 음수 값으로 제공합니다. 또한 특정 단위 변환에 ChronoUnit을 사용하는 것은 안정적인 접근 방식입니다.
위 내용은 Java에서 두 LocalDateTime 개체 간의 시간 차이를 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!