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

Manejo de fechas Servlet

Una de las ventajas más importantes de usar Servlet es que se pueden usar la mayoría de los métodos disponibles en Java core. Este capítulo explicará los métodos proporcionados por Java. java.util En el paquete Date Clase, esta clase encapsula la fecha y hora actual.

La clase Date admite dos constructores. El primer constructor inicializa el objeto de fecha y hora actual.

Date( )

Los siguientes constructores aceptan un parámetro que es igual a 197Puede usar getTime() para obtener los dos objetos desde 1 0 año 1 Los milisegundos transcurridos desde la medianoche del día.

Date(long millisec)

Una vez que tiene un objeto Date disponible, puede llamar a cualquier método que soporte que se muestra a continuación para usar la fecha:

Número de serieMétodo & Descripción
1boolean after(Date date)
Si la fecha del objeto Date llamado está después de la fecha especificada por date, devolverá true, de lo contrario devolverá false.
2boolean before(Date date)
Si la fecha del objeto Date llamado está antes de la fecha especificada por date, devolverá true, de lo contrario devolverá false.
3Object clone( )
Llamar repetidamente al objeto Date.
4int compareTo(Date date)
Comparar el valor del objeto llamado con el valor de date. Si los dos valores son iguales, devolverá 0. Si el objeto llamado está antes de date, devolverá un valor negativo. Si el objeto llamado está después de date, devolverá un valor positivo.
5int compareTo(Object obj)
Si obj es de la clase Date, la operación es equivalente a compareTo(Date). De lo contrario, lanzará una excepción ClassCastException.
6boolean equals(Object date)
Si la fecha y hora del objeto Date llamado coinciden con la fecha especificada por date, devolverá true, de lo contrario devolverá false.
7long getTime( )
Devolver 197Puede usar getTime() para obtener los dos objetos desde 1 0 año 1 Los milisegundos transcurridos desde el día.
8int hashCode( )
Devolver el código de hash del objeto llamado.
9void setTime(long time)
Establecer el tiempo y la fecha especificados por time, lo que representa desde 197Puede usar getTime() para obtener los dos objetos desde 1 0 año 1 El tiempo transcurrido desde la medianoche del día (en milisegundos).
10String toString( )
Convertir el objeto Date llamado en una cadena de caracteres y devolver el resultado.

Obtener la fecha y hora actual

Es muy fácil obtener la fecha y hora actual en Java Servlet. Puede usar un objeto Date simple. toString() 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;
/**
 * 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 = "显示当前的日期和时间";
        un método para salida de la fecha y hora actual, como se muestra a continuación:
        String docType = "<!DOCTYPE html> \n";
          out.println(docType +
            "<html>\n" +
            "<head><title>" + title + "</title></head>\n" +
            "<body bgcolor=\"#f0f0f0\">\n" +
            "<h1 aline=\"center\">" + title + "</h1>\n" +
            "<h2 aline=\"center\">" + Date date = new Date(); + "</h2>\n" +
            "</body></html>
    }
}

date.toString()

ahora, compilamos el Servlet anterior y creamos la entrada adecuada en el archivo web.xml:1<?xml version="-8.0" encoding="UTF
"?>-web
  <web
    servlet>-<servlet/pattern>-name>CurrentDate<
    servlet>-<servlet>3class>com.w/pattern>-codebox.test.CurrentDate<
  mapping>/class>
  servlet>-servlet
    servlet>-<servlet/pattern>-name>CurrentDate<
    name>-url/TomcatTest/<url/CurrentDate<-url
  mapping>/pattern>-servlet
mapping>/<-web

app>//localhost:8080/TomcatTest/Para llamar a este Servlet, use CurrentDate. Esto producirá el siguiente resultado:

Luego acceda a http://localhost:8080/TomcatTest/Intente refrescar la URL http:

CurrentDate, cada pocos segundos actualiza y encuentra la diferencia en la hora mostrada.

Comparación de fechas

  • Como se mencionó anteriormente, puede usar todos los métodos Java disponibles en Servlet. Si necesita comparar dos fechas, aquí hay un método: 197Puede usar getTime() para obtener los dos objetos desde 1 0 año 1 mes

  • Puede usar los métodos before( ), after( ) y equals( ). Dado que el tiempo transcurrido desde la medianoche del día del mes pasado se compara con estos dos valores en milisegundos. 12 la fecha en 18 antes de la fecha, por ejemplo, new Date(99, 2, 12).before(new Date (99, 2, 18)) devuelve true.

  • Puede usar el método compareTo( ), definido por el interfaz Comparable y implementado por Date.

Formatear fechas con SimpleDateFormat

SimpleDateFormat es una clase específica para formatear y analizar fechas de manera sensible al entorno de lenguaje. SimpleDateFormat permite seleccionar cualquier patrón de formato de fecha y hora definido por el usuario.

Modifiquemos el ejemplo anterior, como se muestra a continuación:

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;
/**
 * 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 aline=\"center\">" + title + "</h1>\n" +
            "<h2 aline=\"center\">" + ft.format(dNow) + "</h2>\n" +
            "</body></html>
    }
}

Vuelva a compilar el Servlet superior y acceda a http://localhost:8080/TomcatTest/Para llamar a este Servlet, use CurrentDate. Esto producirá el siguiente resultado:

Códigos de formato de fecha de fecha simple

Especificar el formato de fecha utilizando una cadena de patrones de eventos. En este modo, todas las letras ASCII se conservan como letras de patrones, que se definen como sigue:

CarácterDescripciónEjemplo
GIndicador de eraA.D.
yAño expresado en cuatro dígitos2001
MEl mes del añoJulio o 07
dEl día del mes10
hCon A.M./Horas P.M. (1~12)12
HLa hora del día (0~23)22
mEl minuto de la hora30
sEl segundo del minuto55
SMilisegundos234
EDía de la semanaMartes
DEl día del año360
FLa semana del mes2 (tercer miér. en julio)
wLa semana del año40
WLa semana del mes1
aA.M./Marcador P.M.P.M.
kLa hora del día (1~24)24
KCon A.M./Horas P.M. (0~11)10
zZona horariaEastern Standard Time
'Escape para textoDelimitador
"Comillas simples`

Para ver la lista completa de métodos de fecha disponibles, puede referirse a la documentación estándar de Java.