LocalDateTime, LocalDate 객체에 날짜, 시간을 더하거나 빼는 방법입니다.

1. LocalDateTime plus, minus 함수

LocalDateTime은 plus, minus 함수를 제공하며 날짜, 시간을 더하거나 뺄 수 있습니다.

  • plus/minusMonths()
  • plus/minusDays()
  • plus/minusHours()
  • plus/minusMinutes()
  • plus/minusSeconds()
import java.time.LocalDateTime;

public class Example {
    public static void main(String[] args) {

        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);

        LocalDateTime result = now.plusYears(10)
                .plusMonths(10)
                .plusDays(10)
                .plusHours(10)
                .plusMinutes(10)
                .plusSeconds(10);
        System.out.println(result);

        result = now.minusYears(10)
                .minusMonths(10)
                .minusDays(10)
                .minusHours(10)
                .minusMinutes(10)
                .minusSeconds(10);
        System.out.println(result);
    }
}

Output:

2022-12-17T06:17:00.495838939
2033-10-27T16:27:10.495838939
2012-02-06T20:06:50.495838939

2. LocalDate plus, minus 함수

LocalDate의 경우 날짜 정보만 갖고 있기 때문에 아래와 같은 함수만 제공합니다.

  • plus/minusMonths()
  • plus/minusDays()
  • plus/minusHours()
import java.time.LocalDate;

public class Example {
    public static void main(String[] args) {

        LocalDate now = LocalDate.now();
        System.out.println(now);

        LocalDate result = now.plusYears(10)
                .plusMonths(10)
                .plusDays(10);
        System.out.println(result);

        result = now.minusYears(10)
                .minusMonths(10)
                .minusDays(10);
        System.out.println(result);
    }
}

Output:

2022-12-17
2033-10-27
2012-02-07

2. 두개의 LocalDateTime 더하기, 합하기

두개의 LocalDateTime 객체에서 원하는 시간을 더할 수 있습니다.

예를 들어, date2에서 월/일/시간/분/초 정보를 가져와서 date1에 더할 수 있습니다.

import java.time.LocalDateTime;

public class Example {
    public static void main(String[] args) {

        LocalDateTime date1 = LocalDateTime.of(2020, 10, 20, 12, 10, 10);
        System.out.println(date1);

        LocalDateTime date2 = LocalDateTime.of(2020, 1, 5, 1, 15, 20);
        System.out.println(date2);

        LocalDateTime sum = date1.plusMonths(date2.getMonth().getValue())
                .plusDays(date2.getDayOfMonth())
                .plusHours(date2.getHour())
                .plusMinutes(date2.getMinute())
                .plusSeconds(date2.getSecond());
        System.out.println(sum);
    }
}

Output:

2020-10-20T12:10:10
2020-01-05T01:15:20
2020-11-25T13:25:30