Сравнение даты JSTL

Я видел несколько постов о сравнениях дат в JSTL, но до сих пор не могу заставить его работать.

У меня есть поле даты, которое я хочу проверить после 01-01-1970.

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

Может быть, боб следует использовать?

Спасибо !

Ответ 1

Просто используйте <fmt:formatDate>, чтобы извлечь год из него, чтобы вы могли выполнить математику.

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

Ответ 2

U может использовать jstl и usebean что-то вроде этого

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

Ответ 3

Вы также можете добавить булеву getter к вам bean:

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

Итак, вы можете использовать следующий EL:

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

Ответ 4

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

или lt, =, gt:

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

Мы используем метод Long getTime() java.util.Date.

Ответ 5

Вы можете использовать методы (устаревшие) getYear(), getMonth() и т.д.

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

Обратите внимание, что getYear() возвращает номер года - 1900.