본문 바로가기
프로그래밍/Java

[Java] java date format: 초보자를 위한 SimpleDateFormat 가이드

by wyatti 2023. 6. 21.

Java에서 날짜와 시간을 다루는 방법에 대한 초보자를 위한 가이드. SimpleDateFormat를 이해하고 사용하는 방법을 다양한 코드 예시와 함께 제공합니다.
Java 날짜 형식 이해하기: 초보자를 위한 SimpleDateFormat 가이드

 

 

Java 프로그래밍 언어로의 여정을 시작할 때, 특별히 주의가 필요한 주제 중 하나는 날짜와 시간을 다루는 것입니다. Java는 날짜와 시간을 조작할 수 있는 여러 클래스를 제공하며, 그중에서도 SimpleDateFormat, LocalDate, LocalDateTime, 그리고 ZonedDateTime이 가장 자주 사용됩니다. 이 가이드에서는 java.text 패키지의 일부인 SimpleDateFormat 클래스에 초점을 맞추어 설명하겠습니다. 이 클래스의 목적은 Java에서 날짜와 시간 정보를 형식화하고 분석하는 방법을 제공하는 것입니다.

 

 

SimpleDateFormat란 무엇인가?

Java의 SimpleDateFormat은 현지화된 방식으로 날짜를 형식화하고 분석하는 구체적인 클래스입니다. 이를 통해 형식화(즉, 날짜 -> 텍스트), 파싱(텍스트 -> 날짜), 그리고 정규화를 할 수 있습니다. 이 클래스를 이용하면 사용자 친화적인 형식으로 날짜를 형식화하거나, 사용자 입력을 실제 Date 객체로 파싱 할 수 있습니다.

 

SimpleDateFormat 사용하기: 기본사항

다음은 SimpleDateFormat를 사용하여 Date 객체를 String으로 형식화하는 간단한 예입니다.

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");  // 특정 패턴("dd/MM/yyyy")으로 SimpleDateFormat 객체 생성
        Date date = new Date(); // 현재 날짜와 시간을 가진 Date 객체 생성
        System.out.println(formatter.format(date)); // 해당 패턴에 따라 Date 객체를 String으로 형식화하여 출력
    }
}

 

 

 

SimpleDateFormat의 다양한 패턴

다음은 SimpleDateFormat에서 사용할 수 있는 다양한 패턴의 예입니다. SimpleDateFormat는 대소문자를 구분하므로, 다른 글자를 사용하면 다른 결과를 얻을 수 있습니다

 

1.초까지 표시되는 전체 날짜와 시간

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

여기서 "HH:mm:ss"는 시, 분, 초를 나타냅니다. "HH"는 24시간 형식을 사용합니다.

 

 

2. 요일과 월 이름의 축약형

SimpleDateFormat formatter = new SimpleDateFormat("EEE, MMM d, ''yy");

"EEE"는 요일의 축약형 (예: Mon), "MMM"은 월의 축약형 (예: Jan)을 제공하며, "''yy"는 두 자리 연도를 제공합니다.

 

 

 

3. 년 중의 일과 주

SimpleDateFormat formatter = new SimpleDateFormat("D 'day in year', w 'week in year'");

"D"는 년 중의 날 (1 - 365 또는 366)을, "w"는 년 중의 주를 나타냅니다.

 

 

4. 사용자 정의 패턴

SimpleDateFormat formatter = new SimpleDateFormat("'Date: ' dd/MM/yyyy 'Time: ' HH:mm:ss");

위와 같이 텍스트와 패턴을 결합할 수 있습니다. 이 경우 "Date: 21/06/2023 Time: 12:30:15"와 같이 출력됩니다.

 

 

텍스트를 날짜로 파싱 하기 날짜를 형식화하는 것 외에도, SimpleDateFormat는 텍스트를 Date 객체로 파싱 할 수 있습니다.

import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); // 특정 패턴("dd/MM/yyyy")으로 SimpleDateFormat 객체 생성
        String dateInString = "22/06/2023"; // 문자열로 된 날짜

        try {
            Date date = formatter.parse(dateInString); // 문자열을 Date 객체로 파싱
            System.out.println(date); // 파싱된 날짜 출력
        } catch (ParseException e) {
            e.printStackTrace(); // 예외 처리
        }
    }
}

이 예에서는 formatter.parse(dateInString)이 문자열을 Date 객체로 변환하는 데 사용됩니다.

댓글