将日期与jstl中的当前时间进行比较

HCa*_*sko 1 jsp jstl date-comparison

您好我正在尝试使用jspl在jsp文件中比较日期和当前时间.如何使用jstl将日期与当前时间进行比较?我有这个:

<jsp:useBean id="currentDate" type="java.util.Date"/>  
<fmt:formatDate var="now" value="${currentDate} pattern="yyyy-MM-dd"/>  

<c:if test="${ h.time < now }">
  <h1>print something</h1>
</c:if>
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Sus*_*sie 6

将时间转换为日期并将其与当前日期进行比较.

转换到日期:

<jsp:useBean id="dateValue" class="java.util.Date" />
<jsp:setProperty name="dateValue" property="time" value="${h.time}" />
Run Code Online (Sandbox Code Playgroud)

比较:

<c:if test="${dateValue le now}">
    //do something
</c:if>
Run Code Online (Sandbox Code Playgroud)


Sky*_*ker 5

我正在分享一些解决问题的方法。

第一:

我想这是一个java.util.Date

您可以像这样获取当前日期

<jsp:useBean id="now" class="java.util.Date"/>
Run Code Online (Sandbox Code Playgroud)

然后可以使用EL表达式比较它们:

{code}
<c:if test="${submitDate < now}">
We have not yet reached the submit date.
</c:if>{code}
Run Code Online (Sandbox Code Playgroud)

EL使用java的compareTo方法,因此,您的两个对象都必须属于同一类,以便进行这种比较。

如果从数据库中获取一个String,则必须使用它来获取一个Java日期。如果java.sql.Date从数据库中取回a ,它将变得更加棘手。黑客将去java.sql.Date -> String -> java.util.Date using <fmt:formatDate> and <fmt:parseDate>

资源链接:

通过JSTL比较当前日期与数据库中的dat


第二:

<fmt:parseDate value="${found.submitDate}" pattern="yy/MM/dd" var="submitDate"/>
                                 <c:if test="${submitDate <now}">
                                     We have not yet reached the submit date.
                                 </c:if>
Run Code Online (Sandbox Code Playgroud)

第三:

一种干净的方法是使用jsp:useBean标签创建一个包含当前日期/时间的页面范围的变量,然后使用常规的JSTL比较对象。

首先创建页面范围java.util.Date object(使用jsp:useBean),然后使用$ {now}引用当前日期/时间。现在这是一个常规的JSP对象,因此普通的JSTL运算符可以使用此变量:

<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)

资源链接:

JSTL中与当前时间(现在)的JSTL日期比较