JSTL Core <fmt:formatDate> Tag
The <fmt:formatDate> tag is used to format dates in a variety of ways
Attribute:
The <fmt:formatDate> tag has following attributes:
| Attribute | Description | Required | Default |
|---|---|---|---|
| value | Date value to display | Yes | None |
| type | DATE, TIME, or BOTH | No | date |
| dateStyle | FULL, LONG, MEDIUM, SHORT, or DEFAULT | No | default |
| timeStyle | FULL, LONG, MEDIUM, SHORT, or DEFAULT | No | default |
| pattern | Custom formatting pattern | No | None |
| timeZone | Time zone of the displayed date | No | Default time zone |
| var | Name of the variable to store the formatted date | No | Print to page |
| scope | Scope of the variable to store the formatted date | No | page |
The pattern attribute to specify even more precise handling of the date:
| Code | Purpose | Sample |
|---|---|---|
G | The era designator | AD |
y | The year | 2002 |
M | The month | April & 04 |
d | The day of the month | 20 |
h | The hour(12-hour time) | 12 |
H | The hour(24-hour time) | 0 |
m | The minute | 45 |
s | The second | 52 |
S | The millisecond | 970 |
E | The day of the week | Tuesday |
D | The day of the year | 180 |
F | The day of the week in the month | 2 (2nd Wed in month) |
w | The week in the year | 27 |
W | The week in the month | 2 |
a | The a.m./p.m. indicator | PM |
k | The hour(12-hour time) | 24 |
K | The hour(24-hour time) | 0 |
z | The time zone | Central Standard Time |
' | The escape for text | |
'' | The single quote |
Example:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:dateNumber Tag</title>
</head>
<body>
<h3>Number Format:</h3>
<c:set var="now" value="<%=new java.util.Date()%>" />
<p>Formatted Date (1): <fmt:formatDate type="time"
value="${now}" /></p>
<p>Formatted Date (2): <fmt:formatDate type="date"
value="${now}" /></p>
<p>Formatted Date (3): <fmt:formatDate type="both"
value="${now}" /></p>
<p>Formatted Date (4): <fmt:formatDate type="both"
dateStyle="short" timeStyle="short"
value="${now}" /></p>
<p>Formatted Date (5): <fmt:formatDate type="both"
dateStyle="medium" timeStyle="medium"
value="${now}" /></p>
<p>Formatted Date (6): <fmt:formatDate type="both"
dateStyle="long" timeStyle="long"
value="${now}" /></p>
<p>Formatted Date (7): <fmt:formatDate pattern="yyyy-MM-dd"
value="${now}" /></p>
</body>
</html>
This would produce following result:
Date Format:Formatted Date (1): 14:27:18 Formatted Date (2): 23-Sep-2010 Formatted Date (3): 23-Sep-2010 14:27:18 Formatted Date (4): 23/09/10 14:27 Formatted Date (5): 23-Sep-2010 14:27:18 Formatted Date (6): 23 September 2010 14:27:18 GST Formatted Date (7): 2010-09-23 |