둘 다 기간을 표현하기 위한 클래스
Peroid는 인류용 시간(human time)을 처리하기 위한 용도
Duration은 기계용 시간 (machine time)을 처리하기 위한 용도
보통 기계용 시간 (machine time)과 인류용 시간(human time)으로 나눌 수 있다.
package me.prodigy.java8to11;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class App {
public static void main(String[] args) {
System.out.println("===== Period practice =====");
LocalDate today = LocalDate.now();
System.out.println("today=" + today);
LocalDate nextYearChristmas = LocalDate.of(2023, Month.DECEMBER, 25);
// 기간을 단위별로 저장 (1년 1개월 26일 차이)
Period periodLocalDate = Period.between(today, nextYearChristmas);
System.out.println("Period Years=" + periodLocalDate.getYears());
System.out.println("Period Months=" + periodLocalDate.getMonths());
System.out.println("Period Days=" + periodLocalDate.getDays());
Period until = today.until(nextYearChristmas);
System.out.println("Period Days=" + until.get(ChronoUnit.DAYS));
// 기간을 총 일수로 확인
long betweenDays = ChronoUnit.DAYS.between(today, nextYearChristmas);
System.out.println("Between total Days=" + betweenDays);
System.out.println("=============================");
System.out.println("===== Duration practice =====");
Instant now = Instant.now();
Instant plus = now.plus(10, ChronoUnit.SECONDS);
Duration duration = Duration.between(now, plus);
System.out.println(duration.getSeconds());
System.out.println("=============================");
System.out.println("===== LocalDate, LocalDateTime practice =====");
LocalDateTime nowLocalDateTime = LocalDateTime.now();
DateTimeFormatter MMddyyyy = DateTimeFormatter.ofPattern("MM/dd/yyyy");
System.out.println(nowLocalDateTime.format(MMddyyyy));
LocalDate parsed = LocalDate.parse("10/29/2022", MMddyyyy);
System.out.println(parsed);
System.out.println(parsed.format(MMddyyyy));
System.out.println("=============================");
}
}