【发布时间】:2012-09-06 07:50:41
【问题描述】:
我看过一些关于 JSTL 中日期比较的帖子,但我仍然无法使用它。
我有一个日期字段,我想测试它是否在01-01-1970 之后。
<c:if test="${user.BirthDate > whatGoesHere}">
<doSomeLogic/>
</c:if>
也许应该使用 bean?
谢谢!
【问题讨论】:
标签: jstl jsp-tags java.util.date
我看过一些关于 JSTL 中日期比较的帖子,但我仍然无法使用它。
我有一个日期字段,我想测试它是否在01-01-1970 之后。
<c:if test="${user.BirthDate > whatGoesHere}">
<doSomeLogic/>
</c:if>
也许应该使用 bean?
谢谢!
【问题讨论】:
标签: jstl jsp-tags java.util.date
你可以像这样使用jstl和usebean
<jsp:useBean id="now" class="java.util.Date"/>
<c:if test="${someEvent.startDate lt now}">
It's history!</c:if>
【讨论】:
您还可以为您的 bean 添加一个布尔 getter:
public boolean isBirthDateAfter1970(){
return birthDate.after(dateOf1970);
}
所以你可以使用下面的EL:
<c:if test="${user.birthDateAfter1970}">
You were born after the sixties.
</c:if>
【讨论】:
只需使用<fmt:formatDate> 从中提取年份,以便您对其进行数学计算。
<fmt:formatDate value="${user.birthDate}" pattern="yyyy" var="userBirthYear" />
<c:if test="${userBirthYear le 1970}">
<doSomeLogic/>
</c:if>
【讨论】:
<c:if test="${date1.time > date2.time}">...</c:if>
或lt,=,gt:
<c:if test="${date1.time gt date2.time}">...</c:if>
我们利用java.util.Date的Long getTime()方法。
【讨论】:
您可以使用(已弃用)方法getYear()、getMonth() 等。
<c:if test="${user.BirthDate.year > 99}">
<doSomeLogic/>
</c:if>
请注意,getYear() 返回年份编号 - 1900。
【讨论】: