LocalDate
객체 생성
LocalDate date1 = LocalDate.of(2020, 2, 1);
LocalDate date2 = LocalDate.now();
날짜 사이의 간격 구하기
import static java.time.temporal.ChronoUnit.*;
ChronoUnit.YEARS.between(date1, date2);
MONTHS.between(date1, date2);
DAYS.between(date1, date2);
date1.until(date2, YEARS);
date1.until(date2, MONTHS);
date1.until(date2, DAYS);
Period p = date1.until(date2);
System.out.println(p.getYears() + "년 " + p.getMonths() + "개월 " + p.getDays() + "일");
Period p2 = Period.between(date1, date2);
System.out.println(p2.getYears() + "년 " + p2.getMonths() + "개월 " + p2.getDays() + "일");
날짜 계산
date1.plus(Period.of(1, 3, 5));
date1.minus(Period.ofMonths(5));
LocalTime
객체 생성
LocalTime time1 = LocalTime.of(1, 10, 20);
LocalTime time2 = LocalTime.of(2, 11, 50, 999123456);
LocalTime time3 = LocalTime.now();
시간 계산
ChronoUnit.HOURS.between(time1, time2);
MINUTES.between(time1, time2);
SECONDS.between(time1, time2);
MILLIS.between(time1, time2);
NANOS.between(time1, time2);
time1.until(time2, HOURS);
time1.until(time2, MINUTES);
time1.until(time2, SECONDS);
time1.until(time2, MILLIS);
time1.until(time2, NANOS);
Duration d = Duration.between(time1, time2);
d.getSeconds();
d.getNano();
Duration d2 = Duration.of(55, SECONDS);
time1.minus(d2);
time1.plus(30, SECONDS);
💡 Period는 날짜의 차이를 확인할 때 사용하는 클래스이고, Duration은 시간 차이를 확인할 때 사용하는 클래스이다.
LocalDateTime
- 년도, 월, 일과 함께 시간도 저장되는 타입의 클래스
객체 생성
LocalDateTime dateTime1 = LocalDateTime.of(2021, 8, 7, 19, 55, 22);
LocalDateTime dateTime2 = LocalDateTime.now();
날짜 사이의 간격 구하기
import static java.time.temporal.ChronoUnit.*;
ChronoUnit.YEARS.between(dateTime1, dateTime2);
MONTHS.between(dateTime1, dateTime2);
DAYS.between(dateTime1, dateTime2);
HOURS.between(dateTime1, dateTime2);
MINUTES.between(dateTime1, dateTime2);
dateTime1.until(dateTime2, YEARS);
dateTime1.until(dateTime2, MONTHS);
dateTime1.until(dateTime2, DAYS);
dateTime1.until(dateTime2, HOURS);
dateTime1.until(dateTime2, MINUTES);
Period p = date1.until(date2);
System.out.println(p.getYears() + "년 " + p.getMonths() + "개월 " + p.getDays() + "일");
Period p2 = Period.between(date1, date2);
System.out.println(p2.getYears() + "년 " + p2.getMonths() + "개월 " + p2.getDays() + "일");
날짜 계산
dateTime1.plusYears(1);
dateTime1.minusDays(2);
dateTime1.withYear(2019);
dateTime1.with(TemporalAdjusters.firstDayOfMonth());
dateTime1.with(TemporalAdjusters.lastDayOfMonth());
LocalDateTime dateTime3 = dateTime1.with(TemporalAdjusters.lastInMonth(DayOfWeek.SUNDAY));
dateTime3.with(TemporalAdjusters**.next(DayOfWeek.FRIDAY)**);
포맷 변경하여 출력
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
dateTime1.format(df);
dateTime2.format(df);