Period, Duration

이영재·2022년 10월 30일
0

둘 다 기간을 표현하기 위한 클래스

Peroid는 인류용 시간(human time)을 처리하기 위한 용도

Duration은 기계용 시간 (machine time)을 처리하기 위한 용도

보통 기계용 시간 (machine time)과 인류용 시간(human time)으로 나눌 수 있다.

  • 기계용 시간은 EPOCK (1970년 1월 1일 0시 0분 0초)부터 현재까지의 타임스탬프를 표현한다.

practice code

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("=============================");
    }
}
profile
왜why를 생각하는 두괄롬이 되자!

0개의 댓글