[JSTL] LocalDateTime 날짜 형식 바꾸기

dondonee·2024년 6월 20일
0

문제

LocalDateTime 자바 객체를 JSP에 ${created}와 같이 그대로 출력하면 다음과 같이 표시된다.

2024-06-10T11:50:30.531836

따라서 yyyy-MM-dd hh:mm:ss 형식으로 표시하기 위해 fmt 태그 라이브러리를 사용했는데 아래와 같은 오류가 발생했다. LocalDateTimeDate 타입으로 변경할 수 없다고 한다.

<fmt:formatDate value="${created}" pattern="yyyy-MM-dd hh:mm:ss"/> 
Cannot convert [2024-05-08T15:03:30.531836] of type [class java.time.LocalDateTime] to [class java.util.Date]
jakarta.el.ELException: Cannot convert [2024-05-08T15:03:30.531836] of type [class java.time.LocalDateTime] to [class java.util.Date]


해결 ✅

JSTL이 너무 오래된 기술이라 Java 8의 LocalDateTime을 지원하지 않는다고 한다. 🔗 Stackoverflow에 따르면 커스텀 함수를 만들거나 다른 태그 라이브러리를 가져와 사용하는 방법도 있지만, 기존 fmt 함수를 이용해 다음과 같이 해결하였다.


<fmt:parseDate value="${vo.createdDate}" pattern="yyyy-MM-dd'T'HH:mm:ss" var="createdDate"/>
<fmt:formatDate value="${vo.createdDate}" pattern="yyyy-MM-dd HH:mm:ss"/>

0개의 댓글