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

Java printf() 메서드로 날짜와 시간 형식을 지정하는 방법 완벽 정리

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

날짜·시간 형식 지정자 종류

아래 표는 printf() 메서드에서 날짜를 출력할 때 사용할 수 있는 다양한 형식 문자와 그 설명입니다.

형식 문자설명
'B'해당 인수를 전체 월 이름(예: November)으로 형식화합니다.
'b'해당 인수를 축약된 월 이름(예: Nov)으로 형식화합니다.
'h''b'와 동일하게 축약된 월 이름으로 형식화합니다.
'A'해당 인수를 전체 요일 이름(예: Tuesday)으로 형식화합니다.
'a'해당 인수를 축약된 요일 이름(예: Tue)으로 형식화합니다.
'C'해당 인수를 세기(year/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: 연도 형식 지정하기

다음 예제는 Java의 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("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: 월과 요일 이름 출력하기

다음 예제는 Java의 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 접두사 형식 지정자를 활용하면 별도의 라이브러리 없이도 날짜와 시간을 원하는 형태로 손쉽게 출력할 수 있습니다. 상황에 맞는 형식 문자를 조합하여 로그 메시지나 리포트 출력 등 다양한 용도로 활용해 보세요.