我试图比较日期,基于一个基本的例子,并没有找到最好的方法. 下面显示抓住今天的日期/时间,然后在IF声明中进行比较.我确信我硬编码的格式是错误的,但是在输出默认格式的格式时.所
下面显示抓住今天的日期/时间,然后在IF声明中进行比较.我确信我硬编码的格式是错误的,但是在输出默认格式的格式时.所以问题是如何查看一个日期是否低于另一个日期以及如何将它们格式化为仅限日期?
<p> <c:set var="testme" value="<%=new java.util.Date()%>"/> <b><c:out value="${testme}"/></b> </p> <c:if test="${testme lt 'Tue Jan 29 16:02:58 GMT 2013'}"> <p><b><span class="wrap">Test date is less.</span></b></p> </c:if>对于初学者,不要混合Scriptlet和taglibs / EL.这只是麻烦的秘诀.使用其中一个而不是两个.假设你想继续使用taglibs / EL,你可以这样做:
<p> <jsp:useBean id="today" class="java.util.Date" /> <b><c:out value="${today}"/></b> </p> <fmt:setLocale value="en_US" /> <fmt:parseDate var="testdate" value="Tue Jan 29 16:02:58 GMT 2013" pattern="EEE MMM dd HH:mm:ss z yyyy" /> <c:if test="${today.time gt testdate.time}"> <p><b><span class="wrap">Test date is less than now.</span></b></p> </c:if>
请注意,我还修改了变量名称和描述中的一些奇怪的反逻辑.