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