sql을 활용해 비교하기
SELECT *,CASE WHEN(START_DATE < now() and END_DATE > now()) THEN 'Y' ELSE 'N' END as 원하는 필드명
FROM 테이블명
sql를 이용하는 경우 case when 조건문을 활용해 원하는 필드명으로 값을 받아온 후 처리해 줄수 있다.
<c:choose>
<c:when test="${원하는 필드명 eq 'Y'}">
<span style="color: red;">(진행중)</span>
</c:when>
<c:otherwise>
<span style="color: red;">(접수완료)</span>
</c:otherwise>
</c:choose>
jstl을 이용해 비교하기
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
jstl을 이용하려면 페이지 상단에 jstl 태그 라이브러리를 기입해줘야 한다.
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate value="${now}" pattern="yyyyMMddHHmm" var="nowDate"/>
<fmt:formatDate value="${list.start_date}" pattern="yyyyMMddHHmm" var="startDate"/>
<fmt:formatDate value="${list.end_date}" pattern="yyyyMMddHHmm" var="endDate"/>
java util 클래스의 데이트를 활용해 현재 시간을 구한다.
날짜 비교를 하려면 패턴을 맞춰줘야 하는데 <fmt:formatDate>를 이용하면 날짜 정보를 담고 있는 객체를 포맷팅해 원하는 형식으로 출력할수 있다.
속성 | 표현식/EL | 타입 | 설명 |
value | 사용가능 | java.util.Date | 포맷팅할 날짜 및 시간 값 |
type | 사용가능 | String | 날짜, 시간 또는 둘 다 포맷팅 할지의 여부를 지정한다. time, date, both중 한 가지 값을 가질 수 있으며, 기본값은 date이다. |
dateStyle | 사용가능 | String | 날짜에 대해 미리 정의된 포맷팅 스타일을 지정한다. default, short, medium, long, full 중 한가지 값을 가질 수 있으며, 기본값은 default이다 |
timeStyle | 사용가능 | String | 시간에 대해 미리 정의된 포맷팅 스타일을 지정한다. default, short, medium, long, full 중 한가지 값을 가질 수 있으며, 기본값은 default이다. |
pattern | 사용가능 | boolean | 직접 파싱할 때 사용할 양식을 지정한다. java.text.DateFormat에 있는 양식을 사용한다. |
timeZone | 사용가능 | String또는 java.util.Locale |
시간대를 변경하고 싶을 때 사용한다. <fmt:setTimeZone>태그에서 생성한 TimeZone객체를 사용한다. |
var | 사용불가 | String | 파싱한 결과를 저장할 변수 명을 지정. |
scope | 사용불가 | String | 변수를 저장할 영역을 지정한다. 기본값은 page. |
<fmt:parseDate value="202001010000" pattern="yyyyMMddHHmm" var="startDate">
<fmt:parseDate value="202001010000" pattern="yyyyMMddHHmm" var="endDate">
문자열을 Date 타입으로 변경하려면 <fmt:parseDate>을 이용한다.
속성 | 표현식/EL | 타입 | 설명 |
value | 사용가능 | java.util.Date | 파싱할 문자열 |
type | 사용가능 | String | 날짜, 시간 또는 둘 다 포맷팅 할지의 여부를 지정한다. time, date, both중 한 가지 값을 가질 수 있으며, 기본값은 date이다. |
dateStyle | 사용가능 | String | 날짜에 대해 미리 정의된 포맷팅 스타일을 지정한다. default, short, medium, long, full 중 한가지 값을 가질 수 있으며, 기본값은 default이다 |
timeStyle | 사용가능 | String | 시간에 대해 미리 정의된 포맷팅 스타일을 지정한다. default, short, medium, long, full 중 한가지 값을 가질 수 있으며, 기본값은 default이다. |
pattern | 사용가능 | boolean | 직접 파싱할 때 사용할 양식을 지정한다. java.text.DateFormat에 있는 양식을 사용한다. |
timeZone | 사용가능 | String또는 java.util.Locale |
시간대를 변경하고 싶을 때 사용한다. <fmt:setTimeZone>태그에서 생성한 TimeZone객체를 사용한다. |
parseLocale | 사용가능 | String또는 java.util.Locale |
파싱한 결과를 저장할 변수 명을 지정. |
var | 사용불가 | String | 파싱한 결과를 저장할 변수 명을 지정. |
scope | 사용불가 | String | 변수를 저장할 영역을 지정한다. 기본값은 page. |
<c:choose>
<c:when test="${startDate < nowDate && endDate > nowDate}">
<span style="color: red;">(진행중)</span>
</c:when>
<c:otherwise>
<span style="color: red;">(접수완료)</span>
</c:otherwise>
</c:choose>
마지막으로 현재시간과 비교하려는 날짜를 비교한 후 조건에 따라 처리해 준다.