11

我看过一些关于 JSTL 中日期比较的帖子,但我仍然无法让它工作。

我有一个日期字段,我想测试它是否在01-01-1970.

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

也许应该使用豆子?

谢谢 !

4

5 回答 5

19

只需使用<fmt:formatDate>从中提取年份,以便您可以对其进行数学计算。

<fmt:formatDate value="${user.birthDate}" pattern="yyyy" var="userBirthYear" />
<c:if test="${userBirthYear le 1970}">
    <doSomeLogic/>
</c:if>
于 2012-09-13T19:34:54.037 回答
8

你可以使用类似这样的jstl和usebean

    <jsp:useBean id="now" class="java.util.Date"/>
    <c:if test="${someEvent.startDate lt now}"> 
    It's history!</c:if>
于 2012-09-13T09:28:21.847 回答
6

您还可以为您的 bean 添加一个布尔 getter:

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

所以你可以使用下面的EL:

<c:if test="${user.birthDateAfter1970}">
   You were born after the sixties.
</c:if>
于 2012-09-13T09:37:28.340 回答
3
<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.

于 2014-12-16T18:57:35.830 回答
0

您可以使用(不推荐使用的)方法getYear(),getMonth()等。

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

请注意,getYear()返回年份编号 - 1900。

于 2015-02-18T19:23:12.893 回答