이 글에서는 Java에서 시간을 AM/PM 형식으로 포맷하는 방법을 알아봅니다. 포맷 문자열(formatting string)은 날짜·시간 값이 문자열로 어떻게 표현될지(사람이 읽을 수 있는 출력, 플랫 파일 등)를 정의하는 역할을 합니다.
Java의 SimpleDateFormat 클래스를 사용하면 패턴만 지정해 주면 원하는 형태로 손쉽게 시간을 변환할 수 있습니다.
아래는 실제 예시입니다.
입력 예시
현재 날짜: Thu Mar 17 16:04:31 IST 2022
원하는 출력 결과
AM/PM 형식의 현재 시간 : 04.04 pm
알고리즘
1단계 - START 2단계 - 현재 날짜와 시간을 가져오는 Date 객체(current_date)를 선언한다. 3단계 - 필요한 값을 정의한다. 4단계 - SimpleDateFormat 클래스의 객체 'formatTime'을 선언한다. 5단계 - .format(current_date) 메서드를 호출해 시간을 지정된 형식으로 변환한다. 6단계 - 결과를 화면에 출력한다. 7단계 - STOP
예제 1
다음 예제는 메인 메서드 안에서 직접 현재 시간을 가져와 AM/PM 형식으로 변환하는 가장 기본적인 방식입니다.
import java.util.Date;
import java.text.SimpleDateFormat;
public class Demo {
public static void main(String[] args) {
System.out.println("필요한 패키지를 임포트했습니다");
Date current_date = new Date();
System.out.println("현재 날짜: " + current_date);
SimpleDateFormat formatTime = new SimpleDateFormat("hh.mm aa");
String result_time = formatTime.format(current_date);
System.out.println("\nAM/PM 형식의 현재 시간 : " + result_time);
}
}출력 결과
필요한 패키지를 임포트했습니다 현재 날짜: Thu Mar 17 16:04:31 IST 2022 AM/PM 형식의 현재 시간 : 04.04 pm
예제 2
다음 예제는 별도의 메서드를 정의해 시간 포맷 작업을 수행하도록 구조화한 버전입니다. 코드의 재사용성과 가독성을 높이고 싶다면 이 방식이 유용합니다.
import java.util.Date;
import java.text.SimpleDateFormat;
public class Demo {
static void format_time(Date current_date){
SimpleDateFormat formatTime = new SimpleDateFormat("hh.mm aa");
String result_time = formatTime.format( current_date);
System.out.println("\nAM/PM 형식의 현재 시간 : " + result_time);
}
public static void main(String[] args) {
System.out.println("필요한 패키지를 임포트했습니다");
Date current_date = new Date();
System.out.println("현재 날짜: " + current_date);
format_time(current_date);
}
}출력 결과
필요한 패키지를 임포트했습니다 현재 날짜: Thu Mar 17 16:04:31 IST 2022 AM/PM 형식의 현재 시간 : 04.04 pm
패턴 문자 참고
hh.mm aa 패턴에서 각 요소는 다음과 같은 의미를 가집니다.
- hh : 12시간제 기준의 시(01~12)
- mm : 분(00~59)
- aa : 오전/오후 표시(AM/PM 또는 오전/오후)
로케일 설정에 따라 aa는 'am/pm' 대신 '오전/오후'로 출력될 수 있으니, 영문 표기가 필요하다면 Locale.ENGLISH 등을 함께 지정해 주면 됩니다.