2012-09-13 13 views
9

Widziałem kilka wpisów na temat porównania dat w JSTL, ale nadal nie mogę go uruchomić.JSTL Porównywanie dat

Mam pole daty, które chcę sprawdzić, czy jest po 01-01-1970.

<c:if test="${user.BirthDate > whatGoesHere}"> 
    <doSomeLogic/> 
</c:if> 

}

Może fasoli powinny być stosowane?

Dzięki!

Odpowiedz

16

Po prostu użyj <fmt:formatDate>, aby wyodrębnić rok z tego, aby można było na nim matematykę.

<fmt:formatDate value="${user.birthDate}" pattern="yyyy" var="userBirthYear" /> 
<c:if test="${userBirthYear le 1970}"> 
    <doSomeLogic/> 
</c:if> 
4

U można używać JSTL i useBean coś w tym

<jsp:useBean id="now" class="java.util.Date"/> 
    <c:if test="${someEvent.startDate lt now}"> 
    It's history!</c:if> 
+0

istnieje fasola dla Unix Data (0)? (01/01/1970) – Nati

5

Można również dodać logiczną getter wam Fasola:

public boolean isBirthDateAfter1970(){ 
    return birthDate.after(dateOf1970); 
} 

dzięki czemu można korzystać z następujących EL:

<c:if test="${user.birthDateAfter1970}"> 
    You were born after the sixties. 
</c:if> 
2
<c:if test="${date1.time > date2.time}">...</c:if> 

lub lt, =, gt:

<c:if test="${date1.time gt date2.time}">...</c:if> 

Wykorzystujemy Long getTime() metodę java.util.Date.

0

Można użyć (przestarzałe) metody getYear(), getMonth() itd

<c:if test="${user.BirthDate.year > 99}"> 
    <doSomeLogic/> 
</c:if> 

Zauważ, że getYear() Zwraca liczbę lat - 1900.