날짜와 시간 데이터를 다루다 보면, 다음과 같은 상황에서 일관된 형식으로 변환하는 기능이 필요하다.
문자열 날짜 형식 변환: 데이터베이스에서 가져온 날짜 문자열을 다른 형식으로 변환.
✔ 예: "2024-12-14" → "12/14/2024"
LocalDateTime을 문자열로 변환: LocalDateTime 객체를 원하는 포맷의 문자열로 변환.
✔ 예: 2024-12-14T12:00:00 → "2024-12-14 12:00:00"
현재 날짜/시간 가져오기: 실행 시점의 현재 날짜/시간을 특정 형식으로 출력.
✔ 예: 2024-12-14 14:30:00
이 메서드는 문자열로 된 날짜를 입력받아, 지정된 형식으로 변환한다.
입력 형식과 출력 형식을 모두 파라미터로 받을 수 있어 유연성이 높다.
/**
* @param dateString 변환할 날짜 문자열 (예: "2024-12-14")
* @param inputFormat 입력 날짜 형식 (예: "yyyy-MM-dd")
* @param outputFormat 출력 날짜 형식 (예: "MM/dd/yyyy")
* @return 변환된 날짜 문자열
*/
public static String formatDate(String dateString, String inputFormat, String outputFormat) {
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(inputFormat);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(outputFormat);
LocalDate date = LocalDate.parse(dateString, inputFormatter);
return date.format(outputFormatter);
}
사용 예시
String inputDate = "2024-12-14";
String result = formatDate(inputDate, "yyyy-MM-dd", "MM/dd/yyyy");
System.out.println(result); // 출력: "12/14/2024"
이 메서드는 LocalDateTime 객체를 원하는 문자열 형식으로 변환한다.
/**
* @param dateTime 변환할 LocalDateTime 객체
* @param outputFormat 출력 날짜 형식 (예: "yyyy-MM-dd HH:mm:ss")
* @return 변환된 날짜 문자열
*/
public static String formatDateTime(LocalDateTime dateTime, String outputFormat) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(outputFormat);
return dateTime.format(formatter);
}
사용 예시
LocalDateTime now = LocalDateTime.of(2024, 12, 14, 15, 30);
String formattedDateTime = formatDateTime(now, "yyyy-MM-dd HH:mm:ss");
System.out.println(formattedDateTime); // 출력: "2024-12-14 15:30:00"
이 메서드는 현재 날짜와 시간을 특정 형식으로 변환하여 반환한다.
/**
* @param outputFormat 출력 날짜 형식 (예: "yyyy-MM-dd HH:mm:ss")
* @return 현재 날짜/시간의 문자열
*/
public static String getCurrentDateTime(String outputFormat) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(outputFormat);
return LocalDateTime.now().format(formatter);
}
사용 예시
String currentDateTime = getCurrentDateTime("yyyy-MM-dd HH:mm:ss");
System.out.println(currentDateTime); // 출력: "2024-12-14 15:45:00"
4. 코드 통합 및 요약
날짜와 시간 변환 관련 메서드를 한눈에 볼 수 있도록 통합 코드로 정리:
이렇게 만들어 사용할 경우 일관된 형식 처리가 가능하고, 파라미터로 받은 값을 다양한 포맷에 대응할 수 있다.
그리고 매번 날짜 변환 로직을 작성하지 않아도 된다는 장점과 API 사용시 활용성이 높을 수 있다!