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

Traitement des dates Servlet

L'un des avantages les plus importants d'utiliser Servlet est que la plupart des méthodes disponibles dans le core Java peuvent être utilisées. Ce chapitre expliquera les méthodes fournies par Java. java.util Dans le paquet Date La classe, cette classe encapsule la date et l'heure actuelles.

La classe Date prend en charge deux constructeurs. Le premier constructeur initialise l'objet de date et d'heure actuelle.

Date( )

Les constructeurs suivants acceptent un paramètre égal à 197Vous pouvez utiliser getTime() pour obtenir les deux objets depuis 1 0 an 1 Le nombre de millisecondes écoulées depuis minuit du jour.

Date(long millisec)

Une fois que vous avez un objet Date disponible, vous pouvez appeler l'une des méthodes suivantes pour utiliser la date :

NuméroMéthode & Description
1boolean after(Date date)
Si la date contenue dans l'objet Date appelé est après la date spécifiée par date, retourner true, sinon retourner false.
2boolean before(Date date)
Si la date contenue dans l'objet Date appelé est avant la date spécifiée par date, retourner true, sinon retourner false.
3Object clone( )
Appeler à nouveau l'objet Date.
4int compareTo(Date date)
Comparer la valeur de l'objet appelé avec la valeur de date. Si les deux valeurs sont égales, retourner 0. Si l'objet appelé est avant date, retourner une valeur négative. Si l'objet appelé est après date, retourner une valeur positive.
5int compareTo(Object obj)
Si obj est une classe Date, l'opération est équivalente à compareTo(Date). Sinon, il lève une exception ClassCastException.
6boolean equals(Object date)
Si l'objet Date appelé contient la même heure et la même date que date spécifiée, retourner true, sinon retourner false.
7long getTime( )
Retourner 197Vous pouvez utiliser getTime() pour obtenir les deux objets depuis 1 0 an 1 Le nombre de millisecondes écoulées depuis le jour.
8int hashCode( )
Retourner le code hash de l'objet appelé.
9void setTime(long time)
Définir time avec l'heure et la date spécifiés, ce qui représente à partir de 197Vous pouvez utiliser getTime() pour obtenir les deux objets depuis 1 0 an 1 Le temps écoulé depuis minuit du jour (en millisecondes).
10String toString( )
Convertir l'objet Date appelé en une chaîne de caractères et renvoyer le résultat.

Récupérer la date et l'heure actuelles

Il est très facile de récupérer la date et l'heure actuelles dans un Servlet Java. Vous pouvez utiliser un simple objet Date. 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 = "显示当前的日期和时间";
        une méthode pour afficher la date et l'heure actuelles, comme suit :
        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 date = new Date(); + "</h2>\n" +
            "</body></html>
    }
}

date.toString()

now, let's compile the above Servlet and create the appropriate entry in the web.xml file :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/Pour appeler ce Servlet, utilisez CurrentDate. Cela produira le résultat suivant :

Ensuite, accédez à http://localhost:8080/TomcatTest/Essayer de rafraîchir l'URL http:

CurrentDate, chaque fois que vous rafraîchissez toutes les quelques secondes, vous remarquerez une différence dans l'affichage de l'heure.

Comparaison des dates

  • comme mentionné précédemment, vous pouvez utiliser toutes les méthodes Java disponibles dans Servlet. Si vous devez comparer deux dates, voici la méthode : 197Vous pouvez utiliser getTime() pour obtenir les deux objets depuis 1 0 an 1 mois

  • Vous pouvez utiliser les méthodes before(), after() et equals(). Étant donné que le temps écoulé depuis minuit le jour du mois (en millisecondes), puis comparez ces deux valeurs. 12 le numéro est 18 avant le numéro, par exemple, new Date(99, 2, 12).before(new Date(99, 2, 18)) renvoie true.

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

Formater une date avec SimpleDateFormat

SimpleDateFormat est une classe spécifique qui formatte et parse les dates de manière sensible aux environnements linguistiques. SimpleDateFormat vous permet de choisir n'importe quel modèle de formatage de date et heure utilisateur défini.

Modifionsons le exemple précédent comme suit :

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

Recompilez le Servlet ci-dessus et accédez à http://localhost:8080/TomcatTest/Pour appeler ce Servlet, utilisez CurrentDate. Cela produira le résultat suivant :

Codes de format de date simple

Utilisez une chaîne de modèle d'événement pour spécifier le format de date. Dans ce mode, toutes les lettres ASCII sont conservées comme lettres de modèle, qui sont définies comme suit :

CaractèreDescriptionExemple
GIndicateur d'époqueAP
yAnnée représentée par quatre chiffres2001
MMois de l'annéeJuillet ou 07
dJour du mois10
hAvec A.M./Heures P.M. (1~12)12
HHeure du jour (0~23)22
mMinute de l'heure30
sSeconde du minute55
SMillièmes234
EJour de la semaineMardi
DJour de l'année360
FLa semaine en cours est la semaine du mois2 (second mercredi en juillet)
wSemaine de l'année40
WSemaine du mois1
aA.M./Marque P.M.P.M.
kHeure du jour (1~24)24
KAvec A.M./Heures P.M. (0~11)10
zFuseau horaireHeure de l'Est standard
'Échapper pour le texteDélimiteur
"Guillemets simples`

Pour consulter la liste complète des méthodes de traitement des dates disponibles, vous pouvez consulter la documentation Java standard.