2012-09-13 21 views
9

He visto algunas publicaciones sobre comparaciones de fechas en JSTL, pero sigo sin poder hacerlo funcionar.JSTL Comparación de fechas

Tengo un campo de fecha, que quiero comprobar si es posterior al 01-01-1970.

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

}

Tal vez un grano se debe utilizar?

Gracias!

Respuesta

16

Simplemente use <fmt:formatDate> para extraer el año de la misma para que pueda hacer los cálculos al respecto.

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

U puede utilizar jstl y algo useBean como esto

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

hay un grano para Unix Fecha (0)? (01/01/1970) – Nati

5

También puede añadir un captador booleano para que frijol:

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

lo que puede utilizar el siguiente EL:

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

o lt, =, gt:

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

explotamos Long getTime() método de java.util.Date.

0

Se pueden utilizar los métodos (en desuso), getYear()getMonth(), etc.

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

Tenga en cuenta que getYear() devuelve el número del año - 1900.