Date et heure actuelles JSP
⚡ Résumé intelligent
La gestion des dates JSP repose sur le noyau simple JavaAinsi, la classe java.util.Date et ses constructeurs peuvent être appelés directement depuis un scriptlet ou une balise d'expression pour afficher la date et l'heure actuelles sur une page.

Gestion des dates JSP
Le principal avantage de JSP est que toutes les méthodes du noyau Java peut être utilisé dans JSP.
Dans cette section, nous utiliserons le Date classe de la java.util package, qui contient à la fois une date et une heure dans un seul objet. La classe est disponible sur chaque JSP La page s'affiche dès que le package est importé avec une directive de page.
Il prend en charge deux constructeurs :
| Constructeur | Ce qu'il fait |
|---|---|
Date() |
Elle nous donne la date et l'heure actuelles. |
Date(long millisec) |
Cette fonction prend en paramètre le nombre de millisecondes écoulées depuis le 1er janvier 1970. |
Le Date Cette classe expose également les méthodes listées ci-dessous. Java Les types de retour primitifs sont écrits en minuscules, comme ils apparaissent dans le Java API.
| Méthode | Description |
|---|---|
boolean after(Date date) |
Elle indique si cette date est postérieure au paramètre de date donné. |
boolean before(Date date) |
Elle indique si cette date est antérieure à la date spécifiée. |
Object clone() |
Cela crée une copie de l'objet date. |
int compareTo(Date date) |
Il compare l'objet de classe date avec un autre. |
int compareTo(Object date) |
Elle compare un objet de la classe objet avec un autre. Cette surcharge appartient à l'API pré-génériques ; actuelle Java expose uniquement compareTo(Date). |
boolean equals(Object date) |
Il vérifie si deux objets de date sont égaux. |
long getTime() |
Il récupère le temps en millisecondes depuis le 1er janvier 1970. |
int hashCode() |
Il récupère le code de hachage de la date donnée. |
void setTime(long time) |
Elle définit l'heure de l'objet date donné. |
String toString() |
Il convertit l'objet date en un objet chaîne de caractères. |
À noter: les accesseurs de champ de cette classe, tels que getYear(), getMonth() et toLocaleString()Ces méthodes sont obsolètes depuis JDK 1.1. La classe elle-même fonctionne toujours, mais le nouveau code doit utiliser Calendar, DateFormatou de la java.time Les cours sont décrits plus bas sur cette page.
Exemple : Afficher la date et l’heure actuelles dans une JSP
Exemple :
Dans cet exemple, nous récupérons la date et l'heure actuelles à l'aide d'un objet date.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru current Date</title> </head> <body> Today's date: <%= (new java.util.Date()).toLocaleString()%> </body> </html>
Explication du code :
Code Ligne 11: Nous utilisons l'objet date pour récupérer la date et l'heure actuelles.
Équivalent moderne : Le code ci-dessus est conservé exactement tel que publié. toLocaleString() a été remplacé par DateFormat.format(Date date) à partir de JDK 1.1, une page actuelle afficherait donc : <%= java.text.DateFormat.getDateTimeInstance().format(new java.util.Date()) %> au lieu. le <%= %> La balise d'expression elle-même reste inchangée.
Lorsque vous exécutez le code ci-dessus, vous obtenez le résultat suivant.
Sortie :
Nous récupérons la date et l'heure actuelles.
Comment formater la date et l'heure en JSP
Impression d'un Date L'objet renvoie directement le résultat des paramètres régionaux par défaut, ce qui correspond rarement au format requis par une page. Deux approches permettent de contrôler la sortie.
Le premier conserve la logique dans Java et utilise SimpleDateFormat, où chaque lettre du motif représente une partie de la valeur.
<%@ page import="java.util.*, java.text.*" %> <% SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String today = fmt.format(new Date()); %> Today's date: <%= today %>
| Lettre modèle | Sens | Exemple |
|---|---|---|
yyyy |
Année à quatre chiffres | 2026 |
MM |
Numéro du mois | 07 |
dd |
Jour du mois | 29 |
HH |
Heure, horloge de 24 heures | 18 |
mm |
Minutes | 45 |
ss |
Sec | 02 |
La deuxième approche permet de garder la page exempte de Java et utilise à la place la bibliothèque de formatage JSTL, qui se combine bien avec les autres balises d'action JSP.
<%@ taglib prefix="fmt" uri="jakarta.tags.fmt" %> <jsp:useBean id="now" class="java.util.Date" /> <fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss" />
Le uri La valeur affichée ci-dessus correspond au format JSTL 3.0 utilisé par Jakarta EE 10 et versions ultérieures. Les pages exécutées sur un conteneur plus ancien utilisent toujours ce format. http://java.sun.com/jsp/jstl/fmtet les conteneurs continuent d'accepter l'ancien URI pour des raisons de compatibilité. type sélection d'attributs date, time, both, tandis que dateStyle, timeStyle et timeZone affiner le résultat.
Gestion des dates avec l'API java.time dans JSP
Java 8 a introduit le java.time ce logiciel est désormais recommandé pour la gestion des dates. Java du code, y compris une page JSP. Contrairement à DateCes classes sont immuables et compatibles avec le multithreading, ce qui permet de partager un seul formateur en toute sécurité entre plusieurs requêtes.
<%@ page import="java.time.*, java.time.format.*" %> <% LocalDateTime now = LocalDateTime.now(); DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm"); %> Today's date: <%= f.format(now) %>
Choisissez la classe qui correspond aux besoins réels de la page :
LocalDate— une date sans heure, comme une date de naissance.LocalTime— une heure sans date précise, comme une heure d'ouverture.LocalDateTime— une date et une heure sans fuseau horaire.ZonedDateTime— une date et une heure liées à un fuseau horaire, par exempleZoneId.of("Asia/Kolkata").Instant— un horodatage machine, la correspondance la plus proche de ce quegetTime()résultats.
Il n'est pas nécessaire de réécrire le code existant en une seule fois, car Date.from(instant) et date.toInstant() convertir entre les deux API.
Erreurs courantes de gestion des dates dans JSP
Une date qui s'affiche correctement sur un poste de développement peut néanmoins être erronée en production. Les erreurs ci-dessous expliquent la plupart de ces signalements.
- Importation manquante : grâce à
Datesans<%@ page import="java.util.*" %>La compilation échoue à moins que le fichier soit entièrement qualifié.java.util.Dateest écrit en toutes lettres, comme le fait l'exemple sur cette page. - Lettres du modèle incorrect :
mmest de quelques minutes etMMcela prend des mois, etDDIl s'agit du jour de l'année et non du jour du mois. - Fuseau horaire du serveur :
new Date()reflète l'horloge du serveur, et non celle du visiteur.timeZonesur la balise de formatage lorsque le public se trouve ailleurs. - Partage d'un format de date simple : Cette classe n'est pas thread-safe ; une instance statique partagée entre plusieurs requêtes peut donc renvoyer des résultats corrompus. Créez-en une par requête, ou utilisez
DateTimeFormatter. - Page vide après la mise à jour : Un conteneur sur Jakarta EE 10 rejette l'ancien
javaxLes fichiers JSTL sont des fichiers jar, donc la balise de formatage s'affiche littéralement tant que les artefacts Jakarta ne sont pas en place. - Mise en forme d'une chaîne de caractères : une valeur extraite d'un paramètre de requête est du texte et doit être analysée avec
parse()avant que toute méthode de datation ne l'accepte.

