JSTL 中的比较日期无法按预期工作

Compare date in JSTL doesn't work as expected

与以下JSTL

(日期输入来自给定模式的 messages.properties 文件)

<jsp:useBean id="now" class="java.util.Date" />
Current: ${now}<br/>

<c:catch>
    <fmt:parseDate value="${tickerBegin}" pattern="yyyy-MM-dd HH:mm:ss" var="tickerBeginDate" />
    <fmt:parseDate value="${tickerEnd}" pattern="yyyy-MM-dd HH:mm:ss" var="tickerEndDate" />
</c:catch>
${tickerBegin} parsed to ${tickerBeginDate}<br/>
${tickerEnd} parsed to ${tickerEndDate}<br/>

${tickerEndDate ge nowDate}<br/>
${tickerEndDate.time ge nowDate.time}<br/>

我收到这个输出:

Current: Thu Jun 30 17:05:10 CEST 2016
2016-06-30 14:00:00 parsed to Thu Jun 30 14:00:00 CEST 2016
2017-02-04 03:32:12 parsed to Sat Feb 04 03:32:12 CET 2017
false
false

为什么 none 这些比较会按预期工作?显然,2017 年的任何日期必须大于 2016 年的任何日期?

变量 nowDate 从未在您的代码中定义。尝试

${tickerEndDate ge now}<br/>
${tickerEndDate.time ge now.time}<br/>