English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Uma das principais vantagens de usar Servlet é que você pode usar a maioria dos métodos disponíveis no Java core. Este capítulo explicará os métodos fornecidos pelo Java. java.util Do pacote Date Classe, essa classe encapsula a data e hora atuais.
A classe Date suporta duas funções de construtor. O primeiro construtor inicializa o objeto de data e hora atual.
Date( )
As seguintes funções de construtor aceitam um parâmetro que é igual a 1970 年 1 月 1 Milissegundos passados desde a meia-noite do dia.
Date(long millisec)
Uma vez que você tiver um objeto Date disponível, você pode chamar qualquer um dos métodos suportados abaixo para usar a data:
Número de ordem | Método & Descrição |
---|---|
1 | boolean after(Date date) Se a data contida no objeto Date chamado estiver após a data especificada pelo date, retorna true, caso contrário, retorna false. |
2 | boolean before(Date date) Se a data contida no objeto Date chamado estiver antes da data especificada pelo date, retorna true, caso contrário, retorna false. |
3 | Object clone( ) Chamadas repetidas do objeto Date. |
4 | int compareTo(Date date) Comparar o valor do objeto chamado com o valor de date. Se os dois valores forem iguais, retorna 0. Se o objeto chamado estiver antes de date, retorna um valor negativo. Se o objeto chamado estiver após date, retorna um valor positivo. |
5 | int compareTo(Object obj) Se obj for uma classe Date, a operação é equivalente a compareTo(Date). Caso contrário, ela lançará uma ClassCastException. |
6 | boolean equals(Object date) Se a data e hora contida no objeto Date chamado coincidir com a data especificada pelo date, retorna true, caso contrário, retorna false. |
7 | long getTime( ) Retornar 1970 年 1 月 1 Milissegundos passados desde o dia. |
8 | int hashCode( ) Retorna o código hash do objeto chamado. |
9 | void setTime(long time) Definir o tempo e a data especificados por time, o que representa a partir de 1970 年 1 月 1 Tempo passado desde a meia-noite do dia, em milissegundos. |
10 | String toString( ) Converter o objeto Date chamado em uma string e retornar o resultado. |
Obter a data e hora atuais no Java Servlet é muito fácil. Você pode usar um objeto Date simples. toString() 方法来输出当前的日期和时间,如下所示:
package com.w;3codebox.test; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Classe de implementação Servlet CurrentDate */ @WebServlet("/CurrentDate") public class CurrentDate extends HttpServlet { private static final long serialVersionUID = 1L; public CurrentDate() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"/html;charset=UTF-8-8"); PrintWriter out = response.getWriter(); String title = "Mostrar a data e hora atuais"; Date date = new Date(); String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor="#f0f0f0">\n" + "<h1 alinhamento="centro">" + title + "</h1>\n" + "<h2 alinhamento="centro">" + date.toString() + "</h2>\n" + "</body></html> } }
Agora, vamos compilar o Servlet acima e criar a entrada apropriada no arquivo web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>CurrentDate</servlet-name> <servlet-class>com.w3codebox.test.CurrentDate</servlet-class> </servlet> <servlet-mapping> <servlet-name>CurrentDate</servlet-name> <url-pattern>/TomcatTest/CurrentDate</url-pattern> </servlet-mapping> </web-app>
Agora, através de acesso a http://localhost:8080/TomcatTest/Para chamar o Servlet CurrentDate, isso produzirá o seguinte resultado:
Tente atualizar a URL http://localhost:8080/TomcatTest/CurrentDate, a cada alguns segundos você atualiza você notará a diferença no tempo exibido.
Como mencionado acima, você pode usar todos os métodos Java disponíveis no Servlet. Se precisar comparar duas datas, aqui está o método:
Você pode usar getTime() para obter o tempo desde 1970 年 1 月 1 自午夜以来经过的时间(以毫秒为单位),然后比较这两个值。
Você pode usar os métodos before( ), after( ) e equals( ). Devido ao tempo que passa desde meia-noite do dia 12 在 18 在99, 2, 12).before(new Date (99, 2, 18)) retorna true.
Você pode usar o método compareTo( ), definido pela interface Comparable e implementado por Date.
SimpleDateFormat é uma classe específica para formatar e解析日期,对语言环境敏感。SimpleDateFormat permite que você escolha qualquer padrão de formatação de data e hora definido pelo usuário.
Vamos modificar o exemplo acima, conforme mostrado:
package com.w;3codebox.test; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Classe de implementação Servlet CurrentDate */ @WebServlet("/CurrentDate") public class CurrentDate extends HttpServlet { private static final long serialVersionUID = 1L; public CurrentDate() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"/html;charset=UTF-8-8"); PrintWriter out = response.getWriter(); String title = "Mostrar a data e hora atuais"; Date dNow = new Date(); SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss E a "); String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor="#f0f0f0">\n" + "<h1 alinhamento="centro">" + title + "</h1>\n" + "<h2 alinhamento="centro">" + ft.format(dNow) + "</h2>\n" + "</body></html> } }
Recompile o Servlet acima e acesse http://localhost:8080/TomcatTest/Para chamar o Servlet CurrentDate, isso produzirá o seguinte resultado:
Use uma string de padrão de evento para especificar o formato de data. Neste modo, todas as letras ASCII são mantidas como letras de padrão, que são definidas conforme a seguir:
Caractere | Descrição | Exemplo |
---|---|---|
G | Indicador de Era | AD |
y | Ano representado por quatro dígitos | 2001 |
M | Qual mês do ano | Julho ou 07 |
d | Qual dia do mês | 10 |
h | Com A.M./Horas P.M. (1~12) | 12 |
H | Qual hora do dia (0~23) | 22 |
m | Qual minuto da hora | 30 |
s | Qual segundo do minuto | 55 |
S | Milissegundo | 234 |
E | Qual dia da semana | Terça-feira |
D | Qual dia do ano | 360 |
F | A semana em que se encontra é qual semana do mês | 2 (terça-feira do segundo em julho) |
w | Qual semana do ano | 40 |
W | Qual semana do mês | 1 |
a | A.M./Marcador P.M. | P.M. |
k | Qual hora do dia (1~24) | 24 |
K | Com A.M./Horas P.M. (0~11) | 10 |
z | Fuso Horário | Eastern Standard Time |
' | Escape para texto | Delimitador |
" | Aspas Simples | ` |
Para ver a lista completa dos métodos de data disponíveis, você pode consultar o documento Java padrão.