Date de traitement des servlets
L'un des avantages les plus importants de l'utilisation des Servlets est que vous pouvez utiliser la plupart des méthodes disponibles dans le noyau Java. Ce chapitre expliquera la classe Date dans le package java.util fourni par Java. Cette classe encapsule la date et l'heure actuelles.
La classe Date prend en charge deux constructeurs. Le premier constructeur initialise un objet avec la date et l'heure actuelles.
Date( )
Le constructeur ci-dessous accepte un paramètre égal au nombre de millisecondes écoulées depuis minuit le 1er janvier 1970.
Date(long millisec)
Une fois que vous disposez d'un objet Date, vous pouvez utiliser la date en appelant l'une des méthodes prises en charge suivantes :
Numéro de série | Méthode et description | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 td> |
Si la date contenue dans l'objet Date appelé est postérieure à la date spécifiée par date, il renvoie vrai, sinon il renvoie faux. | ||||||||||||||||||||||
2 | <🎜>booléen avant(Date date)<🎜> Si la date contenue dans l'objet Date appelé est spécifiée dans date avant la date, renvoie vrai, sinon renvoie faux. | ||||||||||||||||||||||
3 | <🎜>Object clone()<🎜> Appelez à plusieurs reprises l'objet Date. | ||||||||||||||||||||||
4 | <🎜>int compareTo(Date date)<🎜> Comparez la valeur de l'objet appelant avec la valeur de date . Si les deux valeurs sont égales, 0 est renvoyé. Si l'objet appelant précède la date, une valeur négative est renvoyée. Si l'objet appelant arrive après la date, une valeur positive est renvoyée. | ||||||||||||||||||||||
5 | <🎜>int compareTo(Object obj)<🎜> Si obj est une classe Date, l'opération est équivalente à comparerÀ(Date). Sinon, il lève une ClassCastException. | ||||||||||||||||||||||
6 | <🎜>booléen égal à (Date de l'objet)<🎜> Si l'heure et la date contenues dans l'objet Date appelé sont identique à Si les dates spécifiées sont les mêmes, true est renvoyé, sinon false est renvoyé. | ||||||||||||||||||||||
7 | <🎜>long getTime( )<🎜> Renvoie le nombre de millisecondes écoulées depuis le 1er janvier 1970. | ||||||||||||||||||||||
8 | <🎜>int hashCode( )<🎜> Renvoie le code de hachage de l'objet appelant. | ||||||||||||||||||||||
9 | <🎜>void setTime(long time)<🎜> Régler l'heure à l'heure et à la date spécifiées, c'est-à-dire à partir de 1970 Temps écoulé (en millisecondes) depuis minuit le 1er janvier de l'année. | ||||||||||||||||||||||
10 | <🎜>String toString()<🎜> Convertissez l'objet Date appelé en chaîne et renvoyez le résultat. |
Obtenir la date et l'heure actuelles
Obtenir la date et l'heure actuelles dans Java Servlet est très simple. Vous pouvez utiliser la méthode toString() d'un simple objet Date pour afficher la date et l'heure actuelles comme suit :
// 导入必需的 java 库 import java.io.*; import java.util.Date; import javax.servlet.*; import javax.servlet.http.*; // 扩展 HttpServlet 类 public class CurrentDate extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; 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 exécutons Créez les entrées appropriées dans le fichier web.xml, puis appelez le servlet en accédant à http://localhost:8080/CurrentDate. Cela produira le résultat suivant :
Afficher la date et l'heure actuellesLun. 21 juin 21:46:49 GMT+04:00 2010
|
Essayez d'actualiser l'URL http://localhost:8080/CurrentDate, vous remarquerez la différence dans l'heure affichée toutes les quelques secondes.
Comparaison de dates
Comme mentionné ci-dessus, vous pouvez utiliser toutes les méthodes Java disponibles dans Servlet. Si vous devez comparer deux dates, voici comment procéder :
Vous pouvez utiliser getTime() pour obtenir le temps écoulé (en millisecondes) depuis minuit le 1er janvier 1970 pour les deux objets (unité) puis comparez les deux valeurs.
Vous pouvez utiliser les méthodes before( ), after( ) et equals( ). Puisque le 12 est avant le 18 d'un mois, par exemple, new Date(99, 2, 12).before(new Date (99, 2, 18)) renvoie vrai.
Vous pouvez utiliser la méthode compareTo(), qui est définie par l'interface Comparable et implémentée par Date.
Formatage des dates à l'aide de SimpleDateFormat
SimpleDateFormat est une classe concrète permettant de formater et d'analyser les dates en fonction des paramètres régionaux. SimpleDateFormat vous permet de choisir n'importe quel mode de formatage date-heure défini par l'utilisateur.
Modifions l'exemple ci-dessus comme suit :
// 导入必需的 java 库 import java.io.*; import java.text.*; import java.util.Date; import javax.servlet.*; import javax.servlet.http.*; // 扩展 HttpServlet 类 public class CurrentDate extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "显示当前的日期和时间"; 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 la servlet ci-dessus, puis appelez la servlet en accédant à http://localhost:8080/CurrentDate. Cela produira le résultat suivant :
Afficher la date et l'heure actuellesLun. 21/06/2010 à 22:06:44 GMT+ 04:00
|
Codes de format pour les formats de date simples
Utilisez une chaîne de modèle d'événement pour spécifier le format de l'heure. Dans ce mode, toutes les lettres ASCII sont réservées comme lettres de mode, qui sont définies comme suit :
字符 | 描述 | 实例 |
---|---|---|
G | Era 指示器 | AD |
y | 四位数表示的年 | 2001 |
M | 一年中的月 | July 或 07 |
d | 一月中的第几天 | 10 |
h | 带有 A.M./P.M. 的小时(1~12) | 12 |
H | 一天中的第几小时(0~23) | 22 |
m | 一小时中的第几分 | 30 |
s | 一分中的第几秒 | 55 |
S | 毫秒 | 234 |
E | 一周中的星期几 | Tuesday |
D | 一年中的第几天 | 360 |
F | 所在的周是这个月的第几周 | 2 (second Wed. in July) |
w | 一年中的第几周 | 40 |
W | 一月中的第几周 | 1 |
a | A.M./P.M. 标记 | PM |
k | 一天中的第几小时(1~24) | 24 |
K | 带有 A.M./P.M. 的小时(0~11) | 10 |
z | 时区 | Eastern Standard Time |
' | Escape for text | Delimiter |
" | 单引号 | ` |
Pour une liste complète des méthodes disponibles pour travailler avec les dates, vous pouvez vous référer à la documentation Java standard.