Servlets - Data de Manuseio
Uma das vantagens mais importantes de usar Servlet é que você pode usar a maioria dos métodos disponíveis no núcleo do Java. Este tutorial o levará através do Java fornecidoDate classe que está disponível em java.util pacote, 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 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 -
Sr. Não. | 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
É muito fácil obter a data e a hora atuais no Java Servlet. Você pode usar um objeto Date simples com o método toString () para imprimir a data e hora atuais da seguinte maneira -
// Import required java libraries
import java.io.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Display Current Date & Time";
Date date = new Date();
String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor = \"#f0f0f0\">\n" +
"<h1 align = \"center\">" + title + "</h1>\n" +
"<h2 align = \"center\">" + date.toString() + "</h2>\n" +
"</body>
</html>"
);
}
}
Agora, vamos compilar o servlet acima e criar entradas apropriadas em web.xml e, em seguida, chamar esse servlet usando a URL http: // localhost: 8080 / CurrentDate. Isso produziria o seguinte resultado -
Display Current Date & Time
Mon Jun 21 21:46:49 GMT+04:00 2010
Tente atualizar o URL http: // localhost: 8080 / CurrentDate e você encontrará a diferença em segundos sempre que fizer a atualização.
Comparação de Data
Como mencionei acima, você pode usar todos os métodos Java disponíveis em seu Servlet. Caso você precise comparar duas datas, a seguir estão os métodos -
Você pode usar getTime () 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 (). Como o 12º dia do mês vem antes do 18º, por exemplo, new Date (99, 2, 12) .before (new Date (99, 2, 18)) retorna true.
Você pode usar o método compareTo (), que é definido pela interface Comparable e implementado por Date.
Formatação de data usando SimpleDateFormat
SimpleDateFormat é uma classe concreta para formatar e analisar datas de maneira sensível ao local. 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 forma -
// Import required java libraries
import java.io.*;
import java.text.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Display Current Date & Time";
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor = \"#f0f0f0\">\n" +
"<h1 align = \"center\">" + title + "</h1>\n" +
"<h2 align = \"center\">" + ft.format(dNow) + "</h2>\n" +
"</body>
</html>"
);
}
}
Compile o servlet acima mais uma vez e chame esse servlet usando a URL http: // localhost: 8080 / CurrentDate. Isso produziria 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 | 10 |
h | Hora em AM / PM (1 ~ 12) | 12 |
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 | 1 |
uma | Marcador AM / PM | PM |
k | Hora do dia (1 ~ 24) | 24 |
K | Hora em AM / PM (0 ~ 11) | 10 |
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.