How to print current date in JSP?

sprugman picture sprugman · Sep 10, 2010 · Viewed 39.2k times · Source

I want to do something like this:

 <?php echo date('Y'); ?>

But then in a .jsp file. All the tutorials I'm seeing require building a class somewhere. We're running appFuse and Tapestry. Surely one of those (if not Java itself) provide us with something to do this sort of thing without all that overhead.

This seems like it should work, but doesn't:

 <%= new Date.getYear() %>

Answer

BalusC picture BalusC · Sep 10, 2010

Use jsp:useBean to construct a java.util.Date instance and use JSTL fmt:formatDate to format it into a human readable string using a SimpleDateFormat pattern.

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

The old fashioned scriptlet way would be:

<%= new java.text.SimpleDateFormat("yyyy").format(new java.util.Date()) %>

Note that you need to specify the full qualified class name when you don't use @page import directives, that was likely the cause of your problem. Using scriptlets is however highly discouraged since a decade.

This all is demonstrated in the [jsp] tag info page as well :)