JSP - Data de Tratamento

Neste capítulo, discutiremos como lidar com dados em JSP. Uma das vantagens mais importantes de usar JSP é que você pode usar todos os métodos disponíveis no núcleo do Java. Vamos levá-lo através doDate classe que está disponível no java.utilpacote; esta classe encapsula a data e hora atuais.

A classe Date oferece suporte a dois construtores. O primeiro construtor inicializa o objeto com a data e hora atuais.

Date( )

O construtor a seguir aceita um argumento que é igual ao número de milissegundos decorridos desde a meia-noite de 1º de janeiro de 1970.

Date(long millisec)

Depois de ter um objeto Date disponível, você pode chamar qualquer um dos seguintes métodos de suporte para brincar com datas -

S.No. Métodos e Descrição
1

boolean after(Date date)

Retorna verdadeiro se o objeto de chamada Date contiver uma data posterior à especificada por data; caso contrário, retorna falso.

2

boolean before(Date date)

Retorna verdadeiro se o objeto Date de chamada contiver uma data anterior à especificada por data; caso contrário, retorna falso.

3

Object clone( )

Duplica o objeto Date de chamada.

4

int compareTo(Date date)

Compara o valor do objeto de chamada com o de data. Retorna 0 se os valores forem iguais. Retorna um valor negativo se o objeto de chamada for anterior à data. Retorna um valor positivo se o objeto de chamada for posterior à data.

5

int compareTo(Object obj)

Opera de forma idêntica a compareTo (Date) se obj for da classe Date. Caso contrário, ele lança uma ClassCastException.

6

boolean equals(Object date)

Retorna verdadeiro se o objeto de invocação Date contém a mesma hora e data que aquele especificado por data; caso contrário, retorna falso.

7

long getTime( )

Retorna o número de milissegundos decorridos desde 1º de janeiro de 1970.

8

int hashCode( )

Retorna um código hash para o objeto de chamada.

9

void setTime(long time)

Define a hora e a data conforme especificado por time, que representa um tempo decorrido em milissegundos a partir da meia-noite de 1º de janeiro de 1970

10

String toString( )

Converte o objeto de chamada Date em uma string e retorna o resultado.

Obtendo data e hora atuais

Com o programa JSP, é muito fácil obter a data e a hora atuais. Você pode usar um objeto Date simples com otoString() método para imprimir a data atual e a hora da seguinte forma -

<%@ page import = "java.io.*,java.util.*, javax.servlet.*" %>

<html>
   <head>
      <title>Display Current Date & Time</title>
   </head>
   
   <body>
      <center>
         <h1>Display Current Date & Time</h1>
      </center>
      <%
         Date date = new Date();
         out.print( "<h2 align = \"center\">" +date.toString()+"</h2>");
      %>
   </body>
</html>

Vamos agora manter o código em CurrentDate.jsp e, em seguida, chame este JSP usando o URL http://localhost:8080/CurrentDate.jsp. Você receberá o seguinte resultado -

Display Current Date & Time

Mon Jun 21 21:46:49 GMT+04:00 2010

Atualize a página com o URL http://localhost:8080/CurrentDate.jsp. Você encontrará a diferença em segundos toda vez que atualizar.

Comparação de datas

Conforme discutido nas seções anteriores, você pode usar todos os métodos Java disponíveis em seus scripts JSP. Caso você precise comparar duas datas, considere os seguintes métodos -

  • Você pode usar getTime( ) método para obter o número de milissegundos decorridos desde a meia-noite de 1º de janeiro de 1970 para ambos os objetos e, em seguida, comparar esses dois valores.

  • Você pode usar os métodos before( ), after( ), e equals( )porque o dia 12 do mês vem antes do dia 18; por exemplo,new Date(99, 2, 12).before(new Date (99, 2, 18)) retorna verdadeiro.

  • Você pode usar o compareTo( )método; este método é definido peloComparable interface e implementado até Date.

Formatação de data usando SimpleDateFormat

SimpleDateFormat é uma classe concreta para formatar e analisar datas de uma maneira que diferencia a localidade. SimpleDateFormat permite que você comece escolhendo quaisquer padrões definidos pelo usuário para a formatação de data e hora.

Vamos modificar o exemplo acima da seguinte maneira -

<%@ page import = "java.io.*,java.util.*" %>
<%@ page import = "javax.servlet.*,java.text.*" %>

<html>
   <head>
      <title>Display Current Date & Time</title>
   </head>
   
   <body>
      <center>
         <h1>Display Current Date & Time</h1>
      </center>
      <%
         Date dNow = new Date( );
         SimpleDateFormat ft = 
         new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
         out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
      %>
   </body>
</html>

Compile o servlet acima mais uma vez e, em seguida, chame este servlet usando o URL http://localhost:8080/CurrentDate. Você receberá o seguinte resultado -

Display Current Date & Time

Mon 2010.06.21 at 10:06:44 PM GMT+04:00

Códigos de formato simples de DateFormat

Para especificar o formato da hora, use uma string de padrão de hora. Neste padrão, todas as letras ASCII são reservadas como letras padrão, que são definidas da seguinte forma -

Personagem Descrição Exemplo
G Designador era DE ANÚNCIOS
y Ano em quatro dígitos 2001
M Mês no ano Julho ou 07
d Dia no mês 0
h Hora em AM / PM (1 ~ 12) 2
H Hora do dia (0 ~ 23) 22
m Minuto em hora 30
s Segundo em minuto 55
S Milissegundo 234
E Dia da semana terça
D Dia no ano 360
F Dia da semana no mês 2 (segunda quarta-feira em julho)
W Semana no ano 40
W Semana no mês
uma Marcador AM / PM PM
k Hora do dia (1 ~ 24) 24
K Hora em AM / PM (0 ~ 11) 0
z Fuso horário Hora Padrão do Leste
' Escape para texto Delimitador
" Citação única `

Para obter uma lista completa de métodos constantes disponíveis para manipular data, você pode consultar a documentação Java padrão.