在JSP中将今天的日期显示为“今天”而不是“dd / mm / yyyy”

时间:2011-10-13 17:44:39

标签: java jsp date jstl

给定java.util.Date,将日期显示为Today而不是在JSP中的某个版本的dd/mm/yyyy中,最佳方法是什么?

鉴于未来的日期,我仍然希望它以dd/mm/yyyy格式显示,但今天应该显示为Today

3 个答案:

答案 0 :(得分:3)

这样做:

<%
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date currentDate  = java.util.Calendar.getInstance().getTime();
Date myDate = someDate;
%>
<%=sdf.format(currentDate).equals(sdf.format(myDate))?"Today":sdf.format(myDate)%>

答案 1 :(得分:3)

正确的JSP / JSTL方式将使用JSTL <fmt:formatDate>。您可以使用<jsp:useBean>构建并在页面范围中放置java.util.Date

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<jsp:useBean id="today" class="java.util.Date" />
<fmt:formatDate var="todayString" value="${today}" pattern="dd/MM/yyyy" />
...
<fmt:formatDate var="dateString" value="${bean.date}" pattern="dd/MM/yyyy" />
<p>The date is: ${todayString == dateString ? 'Today' : dateString}</p>

请注意,我已将mm修改为MMmm代表分钟,MM数月。另请参阅SimpleDateFormat javadoc

答案 2 :(得分:0)

您可以将相关日期与当前日期进行比较(通过创建新的Date()实例来提供。这有帮助吗?

DateFormat df = new SimpleDateFormat("dd/mm/yyyy");
Date someDate = df.parse("10/13/2011");

if (someDate.equals(df.parse(new Date())))
  displayDate = "Today";
else
  displayDate = someDate.toString();

编辑:以下更改将使此工作:

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
if (someDate.equals(df.parse(df.format(new Date()))))