Getting current date in JSTL EL and doing arithmetic on it

Shawn picture Shawn · Feb 9, 2011 · Viewed 31.1k times · Source

Without using scriptlets, what's the correct way for doing date arithmetic in JSP?

Here are examples what I'm trying to do:

  1. Get current year (YYYY)
  2. Subtract current year by one to get previous year (YYYY)

Thanks!

Answer

BalusC picture BalusC · Feb 9, 2011

Use <jsp:useBean> to construct new Date. Use JSTL <fmt:formatDate> to get the year out of it. Use EL to substract it.

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate var="year" value="${now}" pattern="yyyy" />
<p>Current year: ${year}</p>
<p>Previous year: ${year - 1}</p>

Result:

Current year: 2011

Previous year: 2010

Note that the pattern for full year is yyyy, not YYYY.