2012-09-13 22 views
9

Ich habe einige Posts über Datum Vergleiche in JSTL gesehen, aber ich kann es immer noch nicht funktionieren.JSTL Datum Vergleich

Ich habe ein Datumsfeld, das ich testen möchte, ob es nach 01-01-1970 ist.

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

}

Vielleicht sollte eine Bohne verwendet werden?

Danke!

Antwort

16

Verwenden Sie einfach <fmt:formatDate>, um das Jahr daraus zu extrahieren, so dass Sie die Mathematik daraus machen können.

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

U jstl und useBean so etwas wie dieses

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

gibt es eine Bohne für Unix Date (0)? (01.01.1970) – Nati

5

verwenden können Sie auch einen boolean Getter Sie Bean hinzufügen könnte:

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

So können Sie die folgende EL verwenden:

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

oder lt, =, gt:

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

Wir nutzen Long getTime() Methode von java.util.Date.

0

können Sie verwenden, um die (veraltet) Methoden getYear(), getMonth() usw.

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

Beachten Sie, dass getYear() kehrt die Jahreszahl - 1900