JSTL String 형식의 날짜 표현
JSTL에서 날짜를 표현하는 방식이 있다.
fmt:parseDate : String 형을 받아서 원하는 포멧으로 Date 형태로변경
fmt:formatDate : Date 형을 받아서 원하는 포멧으로 날짜형태를 변경
위의 형식으로 각각 아래와 같이 사용하면 된다.
<fmt:parseDate value='${issueDate}' var='issueDate1' pattern="yyyymmdd" scope="page"/>
<fmt:formatDate value="${issueDate1}" pattern="yyyy-mm-dd"/>
그런데 바로 위와 같이 사용하면
Cannot convert '20140128' of type class java.lang.string to class java.util.date
과 같이 에러가 발생한다.
만약 '20140128'의 날짜를 화면에 '2014-01-28'로 보여줄려고 한다며,
먼저 변수는 String이므로 Date 형식으로 변환을 해야 한다.
<fmt:parseDate value='${issueDate}' var='issueDate1' pattern="yyyymmdd" scope="page"/>
이렇게 변환을 한다. 변환된 데이터는 변수 issueDate1에 담긴다.
Date형식이므로 화면에 보여줄 때는 String 형식이어야 한다.
그래서 issueDate1를 다시 String 형식으로 변환해야 한다.
<fmt:formatDate value="${issueDate1}" pattern="yyyy-mm-dd"/>
이렇게 두 문장을 같이 사용해야 에러가 나지 않는다.