Servlets - Fecha de manipulación

Una de las ventajas más importantes de usar Servlet es que puede usar la mayoría de los métodos disponibles en el núcleo de Java. Este tutorial lo llevará a través de Java proporcionadoDate clase que está disponible en java.util paquete, esta clase encapsula la fecha y hora actuales.

La clase Date admite dos constructores. El primer constructor inicializa el objeto con la fecha y hora actuales.

Date( )

El siguiente constructor acepta un argumento que equivale al número de milisegundos que han transcurrido desde la medianoche del 1 de enero de 1970.

Date(long millisec)

Una vez que tenga un objeto Fecha disponible, puede llamar a cualquiera de los siguientes métodos de soporte para jugar con las fechas:

No Señor. Métodos y descripción
1

boolean after(Date date)

Devuelve verdadero si el objeto Date que invoca contiene una fecha posterior a la especificada por fecha; de lo contrario, devuelve falso.

2

boolean before(Date date)

Devuelve verdadero si el objeto Date que invoca contiene una fecha anterior a la especificada por fecha; de lo contrario, devuelve falso.

3

Object clone( )

Duplica el objeto Date que invoca.

4

int compareTo(Date date)

Compara el valor del objeto que invoca con el de la fecha. Devuelve 0 si los valores son iguales. Devuelve un valor negativo si el objeto que invoca es anterior a la fecha. Devuelve un valor positivo si el objeto que invoca es posterior a la fecha.

5

int compareTo(Object obj)

Funciona de forma idéntica a compareTo (Date) si obj es de la clase Date. De lo contrario, arroja una ClassCastException.

6

boolean equals(Object date)

Devuelve verdadero si el objeto de fecha que invoca contiene la misma hora y fecha que el especificado por fecha; de lo contrario, devuelve falso.

7

long getTime( )

Devuelve el número de milisegundos que han transcurrido desde el 1 de enero de 1970.

8

int hashCode( )

Devuelve un código hash para el objeto que lo invoca.

9

void setTime(long time)

Establece la fecha y la hora especificadas por la hora, que representa un tiempo transcurrido en milisegundos desde la medianoche del 1 de enero de 1970.

10

String toString( )

Convierte el objeto Date que invoca en una cadena y devuelve el resultado.

Obtener fecha y hora actual

Es muy fácil obtener la fecha y hora actual en Java Servlet. Puede usar un objeto Date simple con el método toString () para imprimir la fecha y hora actual de la siguiente manera:

// 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>"
      );
   }
}

Ahora compilemos el servlet anterior y creemos las entradas apropiadas en web.xml y luego llamemos a este servlet usando la URL http: // localhost: 8080 / CurrentDate. Esto produciría el siguiente resultado:

Display Current Date & Time

Mon Jun 21 21:46:49 GMT+04:00 2010

Intente actualizar la URL http: // localhost: 8080 / CurrentDate y encontrará la diferencia en segundos cada vez que actualice.

Comparación de fechas

Como mencioné anteriormente, puede usar todos los métodos Java disponibles en su Servlet. En caso de que necesite comparar dos fechas, los siguientes son los métodos:

  • Puede usar getTime () para obtener el número de milisegundos que han transcurrido desde la medianoche del 1 de enero de 1970 para ambos objetos y luego comparar estos dos valores.

  • Puede utilizar los métodos before (), after () y equals (). Debido a que el día 12 del mes es anterior al 18, por ejemplo, new Date (99, 2, 12) .before (new Date (99, 2, 18)) devuelve verdadero.

  • Puede utilizar el método compareTo (), que está definido por la interfaz Comparable e implementado por Date.

Formato de fecha usando SimpleDateFormat

SimpleDateFormat es una clase concreta para formatear y analizar fechas de una manera sensible al entorno local. SimpleDateFormat le permite comenzar eligiendo cualquier patrón definido por el usuario para el formato de fecha y hora.

Modifiquemos el ejemplo anterior de la siguiente manera:

// 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 el servlet anterior una vez más y luego llame a este servlet usando la URL http: // localhost: 8080 / CurrentDate. Esto produciría el siguiente resultado:

Display Current Date & Time

Mon 2010.06.21 at 10:06:44 PM GMT+04:00

Códigos de formato de formato de fecha simple

Para especificar el formato de hora, utilice una cadena de patrón de tiempo. En este patrón, todas las letras ASCII se reservan como letras de patrón, que se definen de la siguiente manera:

Personaje Descripción Ejemplo
GRAMO Designador de era ANUNCIO
y Año en cuatro dígitos 2001
METRO Mes del año Julio o 07
re Día en mes 10
h Hora en AM / PM (1 ~ 12) 12
H Hora del día (0 ~ 23) 22
metro Minuto en hora 30
s Segundo en minuto 55
S Milisegundo 234
mi Día de la semana martes
re Día del año 360
F Día de la semana en el mes 2 (segundo miércoles de julio)
w Semana del año 40
W Semana en mes 1
un Marcador AM / PM PM
k Hora del día (1 ~ 24) 24
K Hora en AM / PM (0 ~ 11) 10
z Zona horaria hora estándar del Este
' Escape por texto Delimitador
" Una frase '

Para obtener una lista completa de los métodos disponibles constantes para manipular la fecha, puede consultar la documentación estándar de Java.