JSTL日期比较

Nat*_*ati 10 jstl jsp-tags java.util.date

我在JSTL上看过一些关于日期比较的帖子,但我仍然无法让它发挥作用.

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

<c:if test="${user.BirthDate > whatGoesHere}">
    <doSomeLogic/>
</c:if>
Run Code Online (Sandbox Code Playgroud)

}

也许应该使用豆子?

谢谢 !

Bal*_*usC 20

只需用<fmt:formatDate>它从中提取年份,以便你可以对它进行数学计算.

<fmt:formatDate value="${user.birthDate}" pattern="yyyy" var="userBirthYear" />
<c:if test="${userBirthYear le 1970}">
    <doSomeLogic/>
</c:if>
Run Code Online (Sandbox Code Playgroud)

  • 比较日期的年份是 Avery 有限的用例。如果你想比较两个日期到毫秒,使用内置的日期比较器。Saurabh Ande 在下面正确回答了它。这也不能解决问题,看来 OP 需要它至少达到每月的某一天的精度。 (2认同)

小智 6

你可以使用jstl和usebean这样的东西

    <jsp:useBean id="now" class="java.util.Date"/>
    <c:if test="${someEvent.startDate lt now}"> 
    It's history!</c:if>
Run Code Online (Sandbox Code Playgroud)


Jas*_*ies 6

你也可以给你的bean添加一个布尔getter:

public boolean isBirthDateAfter1970(){
    return birthDate.after(dateOf1970);
}
Run Code Online (Sandbox Code Playgroud)

所以你可以使用以下EL:

<c:if test="${user.birthDateAfter1970}">
   You were born after the sixties.
</c:if>
Run Code Online (Sandbox Code Playgroud)