Formatação de Datas em Páginas JSP com EL e JSTL

Para exibir datas em um formato específico em páginas JSP utilizando Expression Language (EL) e a biblioteca JSTL (JavaServer Pages Standard Tag Libray), é necessário importar as tags apropriadas e utliizar a tag fmt:formatDate.

Importação das Tags Necessárias

No início do seu JSP, inclua as seguintes diretivas para ter acesso às tags JSTL Core e Formatting:


   <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
   <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
 

Utilizando fmt:formatDate

A tag fmt:formatDate permite formatar um objeto de data/hora de acordo com um padrão definido. A sintaxe básica é:


   <fmt:formatDate value="${suaVariavelDeData}" pattern="formatoDesejado"/>
 

Por exemplo, para exibir uma data em um campo de input:


   <input type="text" value="<fmt:formatDate value="${viewKq.srq}" pattern="yyyy-MM-dd" />" />
 
  • value="${suaVariavelDeData}": Refere-se à variável EL que contém o objeto de data a ser formatado (pode ser um java.util.Date, java.util.Calendar, java.sql.Timestamp, etc.).
  • pattern="formatoDesejado": Define o padrão de formatação da data e hora.

Opções de Formatação com type e style

A tag fmt:formatDate também oferece atributos para formatação predefinida:

  • type: Pode ser "date", "time" ou "both".
  • dateStyle: Estilos predefinidos como "default", "short", "medium", "long", "full".
  • timeStyle: Estilos predefinidos como "default", "short", "medium", "long", "full".

Exemplos de Uso:


   <!-- Formatação combinada de data e hora -->
   <fmt:formatDate value="${isoDate}" type="both"/> <!-- Ex: 2018-01-08 23:59:59 -->

   <!-- Apenas a data -->
   <fmt:formatDate value="${date}" type="date"/> <!-- Ex: 2018-01-08 -->

   <!-- Apenas a hora -->
   <fmt:formatDate value="${isoDate}" type="time"/> <!-- Ex: 23:59:59 -->

   <!-- Data com estilo 'long' -->
   <fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/> <!-- Ex: 8 de janeiro de 2018 -->

   <!-- Hora com estilo 'long' -->
   <fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/> <!-- Ex: 23:59:59 -->
 

Padrões de Formatação Personalizados (pattern)

Os padrões de formato permitem um controle granular sobre a saída da data/hora:

  • d: Dia do mês (1-31).
  • dd: Dia do mês com zero à esquerda (01-31).
  • M: Mês (1-12).
  • MM: Mês com zero à esquerda (01-12).
  • MMM: Nome abreviado do mês (Jan, Fev).
  • MMMM: Nome completo do mês (Janeiro, Fveereiro).
  • yy: Ano com dois dígitos.
  • yyyy: Ano com quatro dígitos.
  • h: Hora (formato 12h, 1-12).
  • hh: Hora com zero à esquerda (formato 12h, 01-12).
  • H: Hora (formato 24h, 0-23).
  • HH: Hora com zero à esquerda (formato 24h, 00-23).
  • m: Minuto (0-59).
  • mm: Minuto com zero à esquerda (00-59).
  • s: Segundo (0-59).
  • ss: Segundo com zero à esquerda (00-59).
  • a: Indicador AM/PM.
  • z: Fuso horário.

Exemplo de Padrão Personalizado:


   <fmt:formatDate value="${dataCompleta}" pattern="dd/MM/yyyy HH:mm:ss"/> <!-- Ex: 08/01/2018 23:59:59 -->
   <fmt:formatDate value="${dataHora}" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/> <!-- Ex: Segunda-feira, janeiro 8, 2018 13:30:00 -0600 -->
 

A distinção entre h e H é crucial para a correta exibição de horas no formato 12h ou 24h. Por exemplo, hh:mm aa para 12h com AM/PM, e HH:mm para 24h.

Tags: jsp EL jstl fmt:formatDate formatação de data

Publicado em 6-25 16:51