Сравнение даты 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.