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 변환 문자를 활용하면 별도의 라이브러리 없이도 날짜를 원하는 형식으로 손쉽게 출력할 수 있습니다. 상황에 맞는 형식 문자를 조합하여 가독성 높은 날짜 출력을 구현해 보세요.