[Java] 날짜와 시간 다루기

CHLEE·2022년 7월 16일
0

Java

목록 보기
2/5

1) Java에서의 날짜와 시간

  • Java를 기반으로 하는 개발을 할 때 날짜를 이용하여 여러 기능을 제공할 때, java.time 패키지를 이용한다.

    패키지(package)란?
    간단하게는 클래스의 묶음이라고 할 수 있습니다. 패키지에는 클래스 혹은 인터페이스를 포함시킬 수 있으며 관련된 클래스끼리 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있습니다.

  • 예제

public class Main {
    public static void main(String[] args) {
        System.out.println("now()를 활용하여 생성");
        LocalDate date = LocalDate.now();
        LocalTime time = LocalTime.now();
        LocalDateTime dateTime = LocalDateTime.now();

        System.out.println(date);
        System.out.println(time);
        System.out.println(dateTime);

        System.out.println("of()를 활용하여 생성");
        LocalDate newDate = LocalDate.of(2021, 03, 29);
        LocalTime newTime = LocalTime.of(22, 50, 55);

        System.out.println(newDate);
        System.out.println(newTime);
    }
}
  • 출력

now() vs of()
위 예제에서 사용한 now() 와 of()는 객체를 생성할 때 사용된다. now()는 현재의 날짜 시간을, of()는 지정하는 값이 필드에 담겨진다.

2) 날짜와 시간의 형식 수정

  • 예제
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);
String shortFormat = formatter.format(LocalTime.now());
System.out.println(shortFormat);
  • 출력

👉 LocalDate.now()를 했을 때와는 다르게 오전/오후가 추가되었으며 보다 직관적인 형태가 되었다.
형식을 변환하는데 사용한 DateTimeFormatter 클래스는 SHORT이외에도 다양한 FormatStyle 종류가 있다.


DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String myDate = newFormatter.format(LocalDate.now());
System.out.println(myDate);

👉 ofPattern에 작성한 형식대로 날짜가 출력된다. 이러한 방식을 활용하여 원하고자 하는 형식으로 출력을 할 수 있다.

3) 날짜와 시간의 차이 계산

LocalDate today = LocalDate.now();
LocalDate birthday = LocalDate.of(2021, 8, 9);
Period period = Period.between(today, birthday);
System.out.println(period.getMonths());
System.out.println(period.getDays());

👉 오늘 일자와 생일 일자간의 날짜 차이를 계산하기 위해서는 between()을 사용하면 구할 수 있다. (이외에도 until()로 구할 수도 있다.)

profile
🤗

0개의 댓글