null 처리용 getIsoDateTimeWithoutT

갓김치·2025년 1월 13일
0

Java

목록 보기
1/1

기존에 쓰던 format util

public static String getIsoDateTimeWithoutT(LocalDateTime localDateTime) {
	return DateTimeFormatter.ISO_DATE_TIME.format(localDateTime).replace("T", " ");
}

DateTimeFormatter.ISO_DATE_TIMETemporal 중에서도 LocalDateTime, OffsetDateTime, 혹은 ZonedDateTime 에만 쓸 수 있다.

null 처리용 util

public static String safeGetIsoDateTimeWithoutT(LocalDateTime localDateTime) {
	return localDateTime != null ? CustomDateTimeFormatter.getIsoDateTimeWithoutT(localDateTime) : "-";
}

이때문에 null 처리용 util 에서 method parameter 를 다른 util 과 다르게 Temporal 으로 받을 수 없다. 현재 프로젝트에서 쓰이는 LocalDateTime만 받을 수 있도록 구현했다.

public static String getIsoDateTimeWithoutT(Temporal temporal) {
    if (temporal instanceof LocalDateTime) {
        return DateTimeFormatter.ISO_DATE_TIME.format((LocalDateTime) temporal).replace("T", " ");
    } else if (temporal instanceof OffsetDateTime) {
        return DateTimeFormatter.ISO_DATE_TIME.format((OffsetDateTime) temporal).replace("T", " ");
    } else if (temporal instanceof ZonedDateTime) {
        return DateTimeFormatter.ISO_DATE_TIME.format((ZonedDateTime) temporal).replace("T", " ");
    } else {
        throw new IllegalArgumentException("Unsupported Temporal type: " + temporal.getClass().getName());
    }
}

프로젝트에서 LocalDateTime, OffsetDateTime, 혹은 ZonedDateTime을 전부 다루기때문에 safeGetIsoDateTimeWithoutT에서 Temporal을 받고 싶다면 공통 유틸인 getIsoDateTimeWithoutT에 이런 로직을 추가할 수도 있다.

profile
갈 길이 멀다

0개의 댓글