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.