Data Processing Servlet
Uma das vantagens mais importantes da utilização de servlet que pode ser utilizado na maior parte do núcleo Java métodos disponíveis. Este capítulo irá explicaro pacote java.utilfornecido peloDataclasse Java que encapsula a data e hora atual.
classe Date suporta dois construtores. O primeiro construtor para inicializar o objeto a data e hora atual.
Date( )
A seguir construtor aceita um parâmetro que é igual ao número de milissegundos decorridos desde 1 de janeiro de 1970 à meia-noite.
Date(long millisec)
Uma vez que você tem um objeto Data disponível, você pode chamar qualquer uma das seguintes maneiras de usar o suporte Data:
序号 | 方法 & 描述 |
---|---|
1 | boolean after(Date date) 如果调用的 Date 对象中包含的日期在 date 指定的日期之后,则返回 true,否则返回 false。 |
2 | boolean before(Date date) 如果调用的 Date 对象中包含的日期在 date 指定的日期之前,则返回 true,否则返回 false。 |
3 | Object clone( ) 重复调用 Date 对象。 |
4 | int compareTo(Date date) 把调用对象的值与 date 的值进行比较。如果两个值是相等的,则返回 0。如果调用对象在 date 之前,则返回一个负值。如果调用对象在 date 之后,则返回一个正值。 |
5 | int compareTo(Object obj) 如果 obj 是 Date 类,则操作等同于 compareTo(Date)。否则,它会抛出一个 ClassCastException。 |
6 | boolean equals(Object date) 如果调用的 Date 对象中包含的时间和日期与 date 指定的相同,则返回 true,否则返回 false。 |
7 | long getTime( ) 返回 1970 年 1 月 1 日以来经过的毫秒数。 |
8 | int hashCode( ) 为调用对象返回哈希代码。 |
9 | void setTime(long time) 设置 time 指定的时间和日期,这表示从 1970 年 1 月 1 日午夜以来经过的时间(以毫秒为单位)。 |
10 | String toString( ) 转换调用的 Date 对象为一个字符串,并返回结果。 |
Obtém a data e hora atuais
Obtém a data e hora atual no Java Servlet é muito fácil. Você pode usartoStringuma data única do objeto()para a saída de data e hora atual da seguinte forma:
package com.w3big.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; /** * Servlet implementation class 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;charset=UTF-8"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; 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 align=\"center\">" + title + "</h1>\n" + "<h2 align=\"center\">" + 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.w3big.test.CurrentDate</servlet-class> </servlet> <servlet-mapping> <servlet-name>CurrentDate</servlet-name> <url-pattern>/TomcatTest/CurrentDate</url-pattern> </servlet-mapping> </web-app>
Então visite http: para chamar o Servlet 8080 / TomcatTest / CurrentDate: // localhost. Isto irá produzir os seguintes resultados:
Tente atualizar a URL http: // localhost: 8080 / TomcatTest / CurrentDate, atualizar a cada poucos segundos diferença que você vai encontrar um tempo de exibição.
comparar datas
Como mencionado acima, você pode usar todos os métodos Java disponíveis em um servlet. Se você precisa comparar duas datas são os seguintes métodos:
- Você pode usar o getTime () para obter os dois objetos, desde 01 de janeiro de 1970 à meia-noite o tempo decorrido (em milissegundos), então estes dois valores.
- Você pode usar o método anterior (), depois de () e equals (). Desde o dia 12 até o dia 18, por exemplo, new Date (99, 2, 12) .Antes (new Date (99, 2, 18)) retorna o mês verdade.
- Você pode usar o método compareTo (), que é definido pela interface Comparável por Data imaginam.
O uso SimpleDateFormat para formatar datas
SimpleDateFormat é uma classe concreta em uma formatação maneira sensível ao local e as datas de análise. SimpleDateFormat permite selecionar qualquer data e hora padrão de formatação definida pelo usuário.
Vamos modificar o exemplo acima, como se segue:
package com.w3big.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; /** * Servlet implementation class 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;charset=UTF-8"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; 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 align=\"center\">" + title + "</h1>\n" + "<h2 align=\"center\">" + ft.format(dNow) + "</h2>\n" + "</body></html>"); } }
Compilar o Servlet anterior novamente e, em seguida, visite http: para chamar o Servlet 8080 / TomcatTest / CurrentDate: // localhost. Isto irá produzir os seguintes resultados:
formato de código de formato de data simples
Usando a cadeia modo de Evento para especificar o formato da hora. Neste modo, todas as letras ASCII são reservados como letras padrão, e as letras são definidos da seguinte forma:
personagem | descrição | Exemplos |
---|---|---|
G | era indicador | AD |
y | Quatro anos dígito | 2001 |
M | Mês do ano | Ou 07 de julho |
d | Os primeiros dias do mês | 10 |
h | AM / PM, hora (1 a 12), com | 12 |
H | As primeiras horas do dia (0 a 23) | 22 |
m | Uma hora após a primeira fracção | 30 |
s | Um ponto nos primeiros segundos | 55 |
S | milisegundo | 234 |
E | A semana da semana | terça-feira |
D | Os primeiros dias do ano | 360 |
F | Semana é a semana em que este mês | 2 (segunda qua em julho) |
w | As primeiras semanas do ano | 40 |
W | As primeiras semanas de janeiro | 1 |
um | AM marca / PM | PM |
k | As primeiras horas do dia (1 a 24) | 24 |
K | Com AM / PM hora (0 a 11) | 10 |
z | fuso horário | Eastern Standard Time |
' | Fuja para o texto | delimitador |
" | aspas simples | ` |
Para obter uma lista completa dos métodos data de processamento disponíveis para ver, você pode consultar a documentação Java padrão.