[그룹웨어] 공통 기능 만들기_Util (날짜와 시간)

yihyun·2024년 12월 14일

ERP 개발 프로젝트

목록 보기
9/11

📆날짜와 ⌚시간을 다루는 공통 기능 만들기

날짜와 시간 데이터를 다루다 보면, 다음과 같은 상황에서 일관된 형식으로 변환하는 기능이 필요하다.

  • 문자열 날짜 형식 변환: 데이터베이스에서 가져온 날짜 문자열을 다른 형식으로 변환.
    ✔ 예: "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

1. 문자열 날짜 변환

이 메서드는 문자열로 된 날짜를 입력받아, 지정된 형식으로 변환한다.
입력 형식과 출력 형식을 모두 파라미터로 받을 수 있어 유연성이 높다.

/**
 * @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"

2. LocalDateTime을 문자열로 변환

이 메서드는 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"

3. 현재 날짜/시간 가져오기

이 메서드는 현재 날짜와 시간을 특정 형식으로 변환하여 반환한다.

/**
 * @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 사용시 활용성이 높을 수 있다!

profile
개발자가 되어보자

0개의 댓글