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