我尝试了以下内容以获取JSTL明天的日期:
<c:set var="currDate" value="<%=java.util.Calendar.getInstance()%>"/>
<fmt:formatDate type="date" value="${currDate.add(java.util.Calendar.DATE,1)}" var="dayEnd"/>
Run Code Online (Sandbox Code Playgroud)
但是当我打印出来至少检查var currDate时
<c:out value="${currDate}" />
Run Code Online (Sandbox Code Playgroud)
显然,它没有用.那我该怎么办?
有更简洁的方法直接在JSTL中执行此操作
<jsp:useBean id="ourDate" class="java.util.Date"/>
<jsp:setProperty name="ourDate" property="time" value="${ourDate.time + 86400000}"/>
<fmt:formatDate value="${ourDate}" pattern="dd/MM/yyyy"/>
Run Code Online (Sandbox Code Playgroud)
但是,当时钟更改为夏令时时,您不能依赖java.util.Date.
因此,如果你真的想在JSTL中完成所有这些,你可以使用Spring标签,Joda Time类和Joda标签.
<jsp:useBean id="ourDate" class="org.joda.time.DateTime"/>
<spring:eval expression="ourDate.plusDays(1)" var="tomorrow"/>
tomorrow: <joda:format value="${tomorrow}" style="SM" />
Run Code Online (Sandbox Code Playgroud)
spring eval标签可以让你做一些我们以前用过的小事所做的顽皮事情,JodaTime可以信任,总能给你一个准确的结果.
<%@ page import="java.util.Date" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:set var="today" value="<%=new Date()%>"/>
<c:set var="tomorrow" value="<%=new Date(new Date().getTime() + 60*60*24*1000)%>"/>
Today: <fmt:formatDate type="date" value="${today}" pattern="d"/>
Tomorrow: <fmt:formatDate type="date" value="${tomorrow}" pattern="d"/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25318 次 |
最近记录: |