Servlets - Date de traitement

L'un des avantages les plus importants de l'utilisation de Servlet est que vous pouvez utiliser la plupart des méthodes disponibles dans le noyau Java. Ce tutoriel vous guidera à travers Java fourniDate classe qui est disponible dans java.util package, cette classe encapsule la date et l'heure actuelles.

La classe Date prend en charge deux constructeurs. Le premier constructeur initialise l'objet avec la date et l'heure actuelles.

Date( )

Le constructeur suivant accepte un argument égal au nombre de millisecondes qui se sont écoulées depuis le 1er janvier 1970 à minuit

Date(long millisec)

Une fois que vous avez un objet Date disponible, vous pouvez appeler l'une des méthodes de support suivantes pour jouer avec les dates -

N ° Sr. Méthodes et description
1

boolean after(Date date)

Renvoie true si l'objet Date appelant contient une date postérieure à celle spécifiée par date, sinon, elle renvoie false.

2

boolean before(Date date)

Renvoie true si l'objet Date appelant contient une date antérieure à celle spécifiée par date, sinon, elle renvoie false.

3

Object clone( )

Duplique l'objet Date appelant.

4

int compareTo(Date date)

Compare la valeur de l'objet appelant avec celle de date. Renvoie 0 si les valeurs sont égales. Renvoie une valeur négative si l'objet appelant est antérieur à la date. Renvoie une valeur positive si l'objet appelant est postérieur à la date.

5

int compareTo(Object obj)

Fonctionne de la même manière que compareTo (Date) si obj est de classe Date. Sinon, il lève une ClassCastException.

6

boolean equals(Object date)

Renvoie true si l'objet Date appelant contient la même heure et la même date que celles spécifiées par date, sinon, il renvoie false.

sept

long getTime( )

Renvoie le nombre de millisecondes écoulées depuis le 1er janvier 1970.

8

int hashCode( )

Renvoie un code de hachage pour l'objet appelant.

9

void setTime(long time)

Définit l'heure et la date spécifiées par time, qui représente un temps écoulé en millisecondes à partir du 1er janvier 1970 à minuit.

dix

String toString( )

Convertit l'objet Date appelant en une chaîne et renvoie le résultat.

Obtenir la date et l'heure actuelles

Il est très facile d'obtenir la date et l'heure actuelles dans Java Servlet. Vous pouvez utiliser un objet Date simple avec la méthode toString () pour imprimer la date et l'heure actuelles comme suit -

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

Maintenant, compilons le servlet ci-dessus et créons les entrées appropriées dans web.xml, puis appelons ce servlet en utilisant l'URL http: // localhost: 8080 / CurrentDate. Cela produirait le résultat suivant -

Display Current Date & Time

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

Essayez d'actualiser l'URL http: // localhost: 8080 / CurrentDate et vous trouverez une différence en secondes à chaque actualisation.

Comparaison des dates

Comme je l'ai mentionné ci-dessus, vous pouvez utiliser toutes les méthodes Java disponibles dans votre servlet. Au cas où vous auriez besoin de comparer deux dates, voici les méthodes -

  • Vous pouvez utiliser getTime () pour obtenir le nombre de millisecondes écoulées depuis minuit, le 1er janvier 1970, pour les deux objets, puis comparer ces deux valeurs.

  • Vous pouvez utiliser les méthodes before (), after () et equals (). Étant donné que le 12 du mois précède le 18, par exemple, new Date (99, 2, 12) .before (new Date (99, 2, 18)) renvoie true.

  • Vous pouvez utiliser la méthode compareTo (), qui est définie par l'interface Comparable et implémentée par Date.

Formatage de la date à l'aide de SimpleDateFormat

SimpleDateFormat est une classe concrète pour le formatage et l'analyse des dates d'une manière sensible à la langue. SimpleDateFormat vous permet de commencer par choisir les modèles définis par l'utilisateur pour le formatage de la date et de l'heure.

Modifions l'exemple ci-dessus comme suit -

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

Compilez à nouveau le servlet ci-dessus, puis appelez ce servlet en utilisant l'URL http: // localhost: 8080 / CurrentDate. Cela produirait le résultat suivant -

Display Current Date & Time

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

Codes de format DateFormat simples

Pour spécifier le format d'heure, utilisez une chaîne de modèle d'heure. Dans ce modèle, toutes les lettres ASCII sont réservées en tant que lettres de modèle, qui sont définies comme suit -

Personnage La description Exemple
g Désignation de l'époque UN D
y L'année en quatre chiffres 2001
M Mois dans l'année Juillet ou 07
Jour dans le mois dix
h Heure en AM / PM (1 ~ 12) 12
H Heure dans la journée (0 ~ 23) 22
m Minute en heure 30
s Seconde en minute 55
S Milliseconde 234
E Jour en semaine Mardi
Jour dans l'année 360
F Jour de la semaine dans le mois 2 (deuxième mercredi de juillet)
w Semaine dans l'année 40
W Semaine en mois 1
une Marqueur AM / PM PM
k Heure dans la journée (1 ~ 24) 24
K Heure en AM / PM (0 ~ 11) dix
z Fuseau horaire Heure normale de l'Est
' Échapper pour le texte Délimiteur
" Simple citation »

Pour une liste complète des méthodes constantes disponibles pour manipuler la date, vous pouvez vous référer à la documentation Java standard.