IT/Front-End

JSTL 날짜 포맷 변경 방법

피리부는 공대생 2022. 2. 3. 17:08

JSTL 날짜 포맷 변경 방법

 

흔히 말하는 JSTL JSTL EL를 합친 단어로 사용되고 있습니다. JSTL에 대한 간략한 소개 먼저 하죠!

 

 

JSTL JavaServer Pages Standard Tag Library, 즉 자바서버 페이지 표준 태그 라이브러리이며,

XML 데이터 처리와 조건문, 반복문 등을 처리합니다.

 

사용 예)

<c:out></c:out>

<c:forEach var > </c:forEach>

 

EL Expression Language, 즉 표준 언어라고 불리며, 자바코드를 사용했던 모든 곳에 EL이 사용 가능합니다.

EL을 사용하면 값이 없거나 형 변환 등에 신결 쓸 필요 없이 서버로 전송해서 형변환 없이 사용가능합니다.

 

사용 예)

${resultMap.Member_date}

<%=Member_date%>

 

그럼 JSTL로 날짜를 변경하는 방법에 대해 이야기하겠습니다.

 


 

우선, JSP 상단에 날짜변경에 사용할 라이브러리를 추가해줍니다.

 

1
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
cs

 

우선 날짜 포맷을 변경하려면 타입이 Date형이여야 합니다.

, String형이면 Date형으로 바꿔줘야하고

Date형이면 그냥 사용하면 됩니다.

 

 

 

 

String형 변경방법 (String > Date)

 

1
2
<fmt:parseDate value="${date}" var="dateValue" pattern="yyyyMMdd"/>
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/>
cs

순서는 fmt:parseDate로 String에서 Date형으로 바꾸는 작업을 하고,

fmt:formatDate로 Date형을 원하는 패턴으로 변경하면 됩니다.

 

 

fmt:parseDate에서 Value는 컨트롤러에서 받은 Model값을 넣어주면 되고 var fmt:formatDate value 들어갈 (변수) 넣어주고 pattern String 날짜 형태를 작성합니다.

fmt:formatDate에서 value fmt:parseDate var값을 넣어주고 pattern 우리 원하는변경하고 싶은 날짜 형태를 넣으면 됩니다!

 

여기서 주의해야할 점 String 형태가 2020 05 01일인데 위처럼 패턴을 ‘yyyyMMdd’로 작성하면 에러가 납니다저는 여기서 좀 헤맸습니다..

만약, 2020년 05월 01일로 사용할 거면 패턴을 ‘yyyy년MM월dd일’ 로 작성을 해야 적용이 가능합니다.

 

사용 예)

${data}에 String 형태의 2021년 07월 15일이란 날짜의 값이 있다고 가정합니다.

 

1
<fmt:parseDate value="${date}" var="dateValue" pattern="yyyy년MM월dd일"/>
cs
<p><fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/></p>

값 : 2021-07-15 

 

 

 

 

Date형 변경 방법

 

1
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd"/>
cs

 

fmt:formatDate 위에서 이야기한듯이 value fmt:parseDate var값을 넣어주고 pattern 우리 원하는변경하고 싶은 날짜 형태를 넣으면 됩니다!

 

pattern형태를

 

pattern="yyyy.MM.dd"

pattern="yyyy/MM/dd"

pattern="MM-dd"

pattern="yyyy-MM-dd HH:mm:ss"

 

이렇게 원하는 대로 변경해주시면 됩니다 :)