[java] 자바 8부터 추가된 기간(Duration) 클래스의 활용 방법

자바 8부터는 날짜와 시간을 다루는 API가 많이 개선되었습니다. 이 중 하나가 java.time 패키지에 속한 Duration 클래스입니다. Duration 클래스는 두 시간 사이의 차이를 표현하고 다루는데 사용됩니다.

Duration 클래스는 다음과 같은 방법으로 활용할 수 있습니다.

1. Duration 객체 생성하기

Duration 클래스를 사용하려면 먼저 해당 클래스의 객체를 생성해야 합니다. Duration은 시간의 길이를 나타내므로 초 단위로 표현됩니다. 다음은 Duration 객체를 생성하는 예제입니다.

Duration duration = Duration.ofSeconds(60); // 60초
Duration duration2 = Duration.ofMinutes(2); // 2분
Duration duration3 = Duration.ofHours(1); // 1시간
Duration duration4 = Duration.ofDays(1); // 1일

2. Duration 객체의 연산하기

Duration 클래스는 시간 간의 연산을 할 수 있는 다양한 메소드를 제공합니다. 몇 가지 예를 살펴보겠습니다.

2.1. Duration 객체 더하기 또는 빼기

Duration duration1 = Duration.ofMinutes(30);
Duration duration2 = Duration.ofHours(2);

Duration result1 = duration1.plus(duration2); // 30분 + 2시간
Duration result2 = duration2.minus(duration1); // 2시간 - 30분

2.2. Duration 객체 비교하기

Duration duration1 = Duration.ofMinutes(30);
Duration duration2 = Duration.ofHours(2);

boolean isGreaterThan = duration2.compareTo(duration1) > 0; // 2시간이 30분보다 큰지 비교
boolean isLessThan = duration1.compareTo(duration2) < 0; // 30분이 2시간보다 작은지 비교

3. Duration 객체의 형식 변환하기

Duration 객체는 다른 시간 단위로 변환할 수도 있습니다. 다음은 Duration 객체를 초, 분, 시간 등으로 변환하는 예제입니다.

Duration duration = Duration.ofMinutes(90);

long seconds = duration.getSeconds(); // 초로 변환
long minutes = duration.toMinutes(); // 분으로 변환
long hours = duration.toHours(); // 시간으로 변환
long days = duration.toDays(); // 일로 변환

위의 예제 코드에서 사용된 Duration의 다양한 메소드를 활용하면 다양한 시간 연산을 쉽고 간편하게 처리할 수 있습니다.

요약

자바 8부터 추가된 Duration 클래스는 시간 간의 차이를 나타내고 연산할 수 있는 유용한 기능을 제공합니다. Duration 객체를 생성하고 연산하며, 다른 시간 단위로 변환하는 방법에 대해 알아보았습니다. 프로젝트에서 시간을 다룰 때 Duration 클래스를 적절히 활용하면 코드를 더욱 효율적으로 작성할 수 있습니다.

참고 자료: Oracle Docs - Duration Class