Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 08 - JSTL – Internacionalização, Taglib functions e expression language

Formatação de datas e números II

Percebeu a diferença trabalhada na questão 2 da Atividade 02? O que acontece quando usamos a tag c:out é que, quando a expressão ${pessoa.dataDeNascimento} é avaliada, o resultado é um objeto do tipo java.util.Date, mas essa tag trabalha com objetos do tipo java.lang.String, então, a tag chama o método toString() da classe java.util.Date, cujo resultado é o que você viu. Já a tag fmt:formatDate espera um objeto do tipo java.util.Date e usa seu valor para formatar a data da forma que estamos acostumados a usar, no formato reduzido de dia/mês/ano.

Vamos, agora, examinar todos os atributos da tag fmt:formatDate para entendermos seu comportamento padrão e o que podemos fazer para customizar a formatação de uma data e de uma hora.

Atributo Descrição Obrigatório Valor default
type Define o tipo do valor especificado pelo atributo value. Os tipos válidos são: time, date, both. Não Date
dataStyle Estilos de formatos predefinidos para uma data. É usado se o type for “date”. Os estilos válidos são: default, short, medium, long e full. Não Default
timeStyle Estilos de formatos predefinidos para uma hora. É usado se o type definido for “time”. Os estilos válidos são: default, short, medium, long e full. Não Default
pattern Expressão customizada para formatação de data e hora. Se for definido, sobrescreve os atributos type, dateStyle e timeStyle. Não
timeZone Fuso horário da data a ser exibida. Não Fuso default
value O valor da data a ser formatada. Não
var Nome da variável que armazenará a data/hora formatada. Não
scope Escopo da variável armazenada em var. Não Página
Quadro 7 - Atributos da tag fmt:formatDate

Começaremos explicando o atributo type. Como vimos no exemplo anterior, se usarmos a tag c:out para exibir uma data, são exibidas informações de data e hora. Entretanto, na maioria dos casos, nós estamos apenas interessados na data ou na hora. Com o uso do atributo type, nós podemos definir qual informação será exibida, se a data, hora ou ambos.

Os atributos dateStyle e timeStyle fornecem algumas formatações básicas para data e hora. Como vimos na tabela anterior, existem cinco tipos predefinidos de estilos para data e hora. Quando usamos o tipo default, o resultado para uma data é dia/mês/ano com quatro dígitos. Já para hora, o resultado é hora:minuto:segundo. Para o estilo short, temos os seguintes resultados: dia/mês/ano com dois dígitos e a hora igual ao estilo default. Como exercício, você pode verificar como ficam os demais estilos.

O atributo timeZone indica qual o fuso horário deve ser utilizado para aquela data. Caso o atributo não seja utilizado, o fuso padrão do sistema será o escolhido. Caso seja preenchido, a data obedecerá ao fuso selecionado no atributo, o que permite criar páginas sensíveis aos diferentes horários do planeta.

O atributo pattern prevê uma forma alternativa de formatação de data e hora, quando nenhum dos estilos predefinidos pode atender às nossas necessidades. Para entender quais são os possíveis valores desse campo, é necessário entender a classe java.text.SimpleDateFormat. Só a título de exemplo, imaginemos que seja necessário exibir apenas a data com seu dia e mês. Nenhum dos tipos predefinidos suporta essa formatação, mas podemos usar no atributo pattern o valor dd/MM, que, como vimos na tabela, sobrescreve os atributos type, dateStyle e timeStyle.

Os demais atributos já são nossos velhos conhecidos.

Importante!

Se você tiver alguma dificuldade com padrões de formatação de data e hora, veja este link: <http://download.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html>.

Versão 5.3 - Todos os Direitos reservados