Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java printf() 메서드로 날짜 형식 지정하기 - 날짜 포맷 문자 총정리

printf() 메서드란?

Java의 printf() 메서드는 형식이 지정된 문자열을 출력할 때 사용됩니다. 이 메서드는 형식 문자열(format string)과, 결과 문자열에 포함될 값들을 담고 있는 객체 배열을 인수로 받습니다. 만약 인수의 개수가 형식 문자열 내 서식 지정자 개수보다 많으면, 초과된 객체들은 무시됩니다.

날짜를 출력할 때는 %t 접두사와 함께 아래 표의 변환 문자들을 조합하여 사용합니다.

날짜 및 시간 형식 문자

형식 문자설명
'B'월 이름 전체(예: November)로 출력합니다.
'b' 또는 'h'축약된 월 이름(예: Nov)으로 출력합니다.
'A'요일 이름 전체(예: Tuesday)로 출력합니다.
'a'축약된 요일 이름(예: Tue)으로 출력합니다.
'C'연도를 세기 단위로 출력합니다(4자리 연도 ÷ 100).
'Y'연도를 4자리 숫자로 출력합니다.
'y'연도를 2자리 숫자로 출력합니다.
'j'해당 연도의 몇 번째 날인지 3자리 숫자로 출력합니다.
'm'월을 2자리 숫자로 출력합니다.
'd'일을 앞자리가 0으로 채워진 2자리 숫자로 출력합니다.
'e'일을 2자리 숫자로 출력합니다.

예제 1: 일, 월, 연도 각각 출력하기

다음 예제는 printf() 메서드를 사용하여 날짜 값을 다양한 형식으로 출력하는 방법을 보여줍니다.

import java.util.Date;
public class Example {
    public static void main(String args[]) {
        // Date 객체 생성
        Date obj = new Date();
        System.out.printf("%tD%n", obj);
        System.out.printf("Date: %td%n", obj);
        System.out.printf("Month: %tm%n", obj);
        System.out.printf("Year: %ty%n", obj);
    }
}

실행 결과

11/10/20
Date: 10
Month: 11
Year: 20

예제 2: 연도 및 연중 경과 일수 출력하기

다음 예제는 printf() 메서드를 활용해 연도(4자리)와 해당 연도에서 몇 번째 날인지 출력하는 방법을 보여줍니다.

import java.util.Date;
public class Example {
    public static void main(String args[]) {
        // Date 객체 생성
        Date obj = new Date();
        System.out.printf("%tD%n", obj);
        System.out.printf("Year: %tY%n", obj);
        System.out.printf("Day of the year: %tj%n", obj);
    }
}

실행 결과

11/10/20
Year: 2020
Day of the year: 315

예제 3: 월 이름과 요일 이름 출력하기

다음 예제는 printf() 메서드를 사용하여 월의 전체/축약 이름과 요일의 전체/축약 이름을 출력하는 방법을 보여줍니다.

import java.util.Date;
public class Example {
    public static void main(String args[]) {
        // Date 객체 생성
        Date obj = new Date();
        System.out.printf("Date: %tD%n", obj);
        System.out.printf("Month (full): %tB%n", obj);
        System.out.printf("Month (abbrevation): %tb%n", obj);
        System.out.printf("Day (full): %tA%n", obj);
        System.out.printf("Day (abbrevation): %ta%n", obj);
    }
}

실행 결과

Date: 11/10/20
Month (full): November
Month (abbrevation): Nov
Day (full): Tuesday
Day (abbrevation): Tue

마무리

printf() 메서드의 %t 변환 문자를 활용하면 별도의 라이브러리 없이도 날짜를 원하는 형식으로 손쉽게 출력할 수 있습니다. 상황에 맞는 형식 문자를 조합하여 가독성 높은 날짜 출력을 구현해 보세요.