English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manipulação de Data Servlet

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 ordemMétodo & Descrição
1boolean 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.
2boolean 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.
3Object clone( )
Chamadas repetidas do objeto Date.
4int 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.
5int compareTo(Object obj)
Se obj for uma classe Date, a operação é equivalente a compareTo(Date). Caso contrário, ela lançará uma ClassCastException.
6boolean 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.
7long getTime( )
Retornar 1970 年 1 月 1 Milissegundos passados desde o dia.
8int hashCode( )
Retorna o código hash do objeto chamado.
9void 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.
10String toString( )
Converter o objeto Date chamado em uma string e retornar o resultado.

Obter a data e hora atuais

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.

Comparação de datas

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 格式化日期

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:

Códigos de Formato de Data Simples

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:

CaractereDescriçãoExemplo
GIndicador de EraAD
yAno representado por quatro dígitos2001
MQual mês do anoJulho ou 07
dQual dia do mês10
hCom A.M./Horas P.M. (1~12)12
HQual hora do dia (0~23)22
mQual minuto da hora30
sQual segundo do minuto55
SMilissegundo234
EQual dia da semanaTerça-feira
DQual dia do ano360
FA semana em que se encontra é qual semana do mês2 (terça-feira do segundo em julho)
wQual semana do ano40
WQual semana do mês1
aA.M./Marcador P.M.P.M.
kQual hora do dia (1~24)24
KCom A.M./Horas P.M. (0~11)10
zFuso HorárioEastern Standard Time
'Escape para textoDelimitador
"Aspas Simples`

Para ver a lista completa dos métodos de data disponíveis, você pode consultar o documento Java padrão.