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

Traitement des dates JSP

l'un des avantages les plus importants de l'utilisation de JSP est de pouvoir utiliser toutes les API Java. Ce chapitre détaillera la classe Date dans Java, qui est dans le paquet java.util et encapsule la date et l'heure actuelles.

La classe Date a deux constructeurs. Le premier constructeur utilise la date et l'heure actuelles pour initialiser l'objet.

Date( )

le deuxième constructeur accepte un paramètre, ce paramètre représente à partir de1970年1Mois1le nombre de millisecondes depuis minuit jusqu'à l'heure que vous souhaitez représenter.

Date(long millisec)

après avoir obtenu l'objet Date, vous pouvez utiliser toutes les méthodes énumérées dans le tableau suivant :

numérométhode & Description
                1boolean after(Date date) retourne true si la date est après la date donnée, sinon retourne false
                2boolean before(Date date) retourne true si la date est avant la date donnée, sinon retourne false
                3Object clone( ) obtient une copie de cet objet
                4int compareTo(Date date) retourne 0 si la date est égale à la date donnée, retourne un nombre négatif si la date est avant la date donnée, retourne un nombre positif si la date est après la date donnée
                5int compareTo(Object obj) comme pour la méthode compareTo(Date), si obj n'est pas un objet de la classe Date ou de l'une de ses sous-classes, lève une exception ClassCastException
                6boolean equals(Object date) retourne true si la date est la même que la date donnée, sinon retourne false
                7long getTime( ) retourne à partir de1970年1Mois1le nombre de millisecondes depuis minuit jusqu'à l'heure représentée par cet objet
                8int hashCode( ) retourne le hachage de cet objet
                9void setTime(long time) 使用给定参数设置时间和日期,参数time表示从1970年1Mois1凌晨至time所经过的毫秒数
                10String toString() 将此对象转换为字符串并返回这个字符串

    获取当前日期和时间

使用JSP编程可以很容易地获取当前日期和时间,只要使用Date对象的toString()方法就可以了,就像下面这样:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*, javax.servlet.*"%%>
<html>
<head>
<title>Afficher l'heure et la date actuelle</title>
</head>
<body>
<h1>Afficher l'heure et la date actuelle</h1>
<%%>
   Date date = new Date();
   out.print("<h2 align="center">" +date.toString();+"</h2>);
%>
</body>
</html>

将上面的代码保存在 main.jsp 文件中,然后访问 http://localhost:8080/testjsp/main.jsp,运行结果如下:

Afficher l'heure et la date actuelle
Sat Jun 25 17:54:34 CST 2019

刷新 http://localhost:8080/testjsp/main.jsp,就可以发现每次刷新所得到的秒数都不相同。

日期比较

就像我在开头所提到的,您可以在JSP脚本中使用任何Java方法。如果您想要比较两个日期,

可以参照下面的方法来做:

  •             使用getTime()方法得到毫秒数,然后比较毫秒数就行了。

  •             使用before(),after(),equals()方法。比如,new Date(99,2,12).before(new Date(99,2,18))返回true。

  •             使用compareTo()方法,该方法在Comparable接口中定义,在Date中实现。

    使用SimpleDateFormat格式化日期

SimpleDateFormat utilise une méthode sensible à la région pour formater et解析日期,它允许您使用自定义的模式来格式化日期和时间。

Modifier légèrement CurrentDate.jsp pour obtenir le code suivant :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*"%%>
<%@ page import="javax.servlet.*,java.text.*"%%>
<html>
<head>
<title>Afficher l'heure et la date actuelle</title>
</head>
<body>
<h1>Afficher l'heure et la date actuelle</h1>
<%%>
   Date dNow = new Date();
   SimpleDateFormat ft = ; 
   new SimpleDateFormat("yyyy");-MM-dd HH:mm:ss");
   out.print("<h2 align="center">" + ft.format(dNow) + "</h2>);
%>
</body>
</html>

Recompilez main.jsp puis accédez à http://localhost:8080/testjsp/main.jsp,obtient-on le résultat suivant :

Afficher l'heure et la date actuelle
2019-06-25 17:57:53

Codes de format SimpleDateFormat

Pour spécifier une chaîne de modèle, il faut utiliser les codes de format de la table suivante :

CaractèreDescriptionExemple
                G                Identificateur d'époque                AP
                y                4Année à deux chiffres                2001
                M                Mois                Juillet ou 07
                d                Jours                10
                h                12Heure de 12 heures, A.M./P.M. (1~12)                12
                H                24Heure de 12 heures                22
                m                Minutes                30
                s                Secondes                55
                S                Millièmes                234
                E                Semaine                Mardi
                D                Un jour de l'année                360
                F                Un jour d'une semaine d'un mois                2 (second mercredi en juillet)
                w                Une semaine de l'année                40
                W                Une semaine d'un mois                1
                a                A.M./Marque P.M.                PM
                k                Une heure de la journée (1~24)                24
                K                Une heure de la journée, A.M./P.M. (0~11)                10
                z                Fuseau horaire                Heure normale de l'Est
                '                Séparateur de texte                Délimiteur
                "                Guillemets simples                `

Pour plus d'informations sur la classe Date, veuillez consulter la documentation Java API.