[java] 자바 8 날짜와 시간 API에서 시간 연산하기

자바 8에서는 java.time 패키지를 통해 새로운 날짜와 시간 API를 제공합니다. 이 API를 사용하여 날짜와 시간을 조작하고 연산할 수 있습니다. 이번 포스트에서는 자바 8의 날짜와 시간 API를 사용하여 시간 연산을 하는 방법에 대해 알아보겠습니다.

LocalTime 사용하기

LocalTime 클래스는 시간을 나타내는 클래스로, 시, 분, 초를 표현할 수 있습니다. 다음은 LocalTime 클래스를 사용하여 시간을 생성하는 예제입니다.

LocalTime currentTime = LocalTime.now();
System.out.println("현재 시간: " + currentTime);

위의 코드는 현재 시간을 얻어와서 출력합니다.

시간 연산하기

자바 8의 날짜와 시간 API에서는 plus 메서드를 사용하여 시간을 더하거나 minus 메서드를 사용하여 시간을 뺄 수 있습니다.

LocalTime newTime = currentTime.plusHours(2); // 2시간 더하기
System.out.println("2시간 후 시간: " + newTime);

LocalTime previousTime = currentTime.minusMinutes(30); // 30분 빼기
System.out.println("30분 전 시간: " + previousTime);

위의 코드에서 plusHours 메서드를 사용하여 2시간을 더한 시간을 구하고, minusMinutes 메서드를 사용하여 30분을 뺀 시간을 구합니다.

기간(Period) 사용하기

Period 클래스는 날짜 간의 차이를 표현하는 클래스로, 일, 주, 월 등의 단위로 날짜를 조작할 수 있습니다. 다음은 Period 클래스를 사용하여 날짜를 조작하는 예제입니다.

LocalDate currentDate = LocalDate.now();
LocalDate futureDate = currentDate.plus(Period.ofDays(7)); // 7일 뒤의 날짜 구하기
System.out.println("7일 후 날짜: " + futureDate);

LocalDate pastDate = currentDate.minus(Period.ofMonths(1)); // 1달 전의 날짜 구하기
System.out.println("1달 전 날짜: " + pastDate);

위의 코드에서 plus 메서드와 minus 메서드를 사용하여 날짜를 조작합니다. Period.ofDays 메서드를 사용하여 7일을 더한 날짜를 구하고, Period.ofMonths 메서드를 사용하여 1달을 뺀 날짜를 구합니다.

결론

이번 포스트에서는 자바 8에서 날짜와 시간을 연산하는 방법에 대해 알아보았습니다. LocalTime 클래스를 사용하여 시간 연산하고, Period 클래스를 사용하여 날짜 연산하는 방법을 다루었습니다. 자바 8의 날짜와 시간 API는 이전의 Date 클래스보다 편리하고 강력하며, 더욱 직관적으로 시간을 다룰 수 있습니다. 자바 8 이후로는 이 API를 사용하여 날짜와 시간을 다루는 것을 권장합니다.

참고 자료