Cursos / Informática para Internet / Desenvolvimento Web I / Aula
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 |
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.
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