본문 바로가기

[자바] 날짜를 요일로 바꾸기

ironwhale 2022. 12. 9.

날짜를 요일로 바꾸기

 파이썬이든 SQL이든 심지어 엑셀에도 날짜관련된 자료형에는 요일을 구하는 기능이 포함되어 있습니다. 이번에는 자바를 이용하여 날짜를 요일로 바꾸는 방법에 대해 알아보겠습니다. 자바8 이상부터는 LocalDate 클래스의 getDayOfWeek() 메서드를 통해 날짜를 요일로 바꿀 수 있습니다. 게다가 숫자가 아닌 FRIDAY와 같이 영어로 나와 더 알기 쉬운거 같습니다.


 

구현 순서

  1. String 형태의 날짜를 입력한다:
    • "2022-12-8" 또는 "2022-12-08" 한자리 숫자 앞에 0이 들어가냐 안들어가냐에 따라 포맷터가 달라집니다.
  2. 포맷터를 설정하기: 2022-12-8로 입력하면 포맷터가 달라집니다.
    • DateTimeFormatter.ISO_LOCAL_DATE 포맷터를 사용하면 2022-12-08 밖에 입력할 수 없습니다.
    • 하지만 이렇게 별도의 포매터를 설정하면이렇게 하면 2022-12-8과 2022-12-08 둘다 사용할 수 있습니다. DateTimeFormatter formatter  = DateTimeFormatter.ofPattern("yyyy-M-d"); 
  3. LocalDate 객체 만들기: LocalDate date1 = LocalDate.parse("2022-12-8",formatter);
  4. date1.getDayOfWeek() 로 요일 알아내기

전체 코드

import java.text.ParseException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Objects;

public class dateTrain {
    public static void main(String[] args) throws ParseException {
        String[] dates = new String[]{"2022-12-8","2022-12-9"};
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-M-d");
        for (String s : dates) {
            LocalDate date1 = LocalDate.parse(s,formatter);
            System.out.println("date2 = " + date1);
            System.out.println("date1.getDayOfWeek() = " + date1.getDayOfWeek());
        }


        String[] dates1 = new String[]{"2022-12-08","2022-12-09"};

        for (String s : dates1) {
            LocalDate date1 = LocalDate.parse(s,DateTimeFormatter.ISO_LOCAL_DATE);
            System.out.println("date3 = " + date1);
            System.out.println("date3.getDayOfWeek() = " + date1.getDayOfWeek());
            System.out.println(Objects.equals(date1.getDayOfWeek().toString(), "THURSDAY"));
        }

    }
}

마치며

하나의 프로그래밍 언어를 익히면 다른 언어에도 똑같은, 비슷한 기능이 있기 때문에 더 빠르게 익힐 수 있는 거 같습니다. 

 

댓글