English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
من بين أكبر المزايا التي يقدمها Servlet هو أنه يمكنك استخدام معظم الطرق المتاحة في Java الأساسي. java.util في المجموعة Date النوع، هذا النوع يحتوي على تاريخ الوقت الحالي.
يدعم جسم Date اثنين من مكونات البناء. المكون الأول يُقوم بتهيئة جسم التاريخ والوقت الحالي.
Date( )
تقبل المكونات الأساسية للبناء الخاص بهذه الفئة عددًا من الميليسيكونات التي مرت من منتصف الليل في 1 يناير 1970.
Date(long millisec)
بمجرد أن يكون لديك جسم Date متاح، يمكنك استدعاء أي من الطرق التالية لدعم التاريخ:
الترتيب | الطريقة & الوصف |
---|---|
1 | boolean after(Date date) إذا كان التاريخ الذي يحتويه جسم Date المطلوب استدعاؤه يلي التاريخ المحدد في date، فإنه يعود صحيحًا، وإلا يعود خطأً. |
2 | boolean before(Date date) إذا كان التاريخ الذي يحتويه جسم Date المطلوب استدعاؤه يسبق التاريخ المحدد في date، فإنه يعود صحيحًا، وإلا يعود خطأً. |
3 | Object clone( ) تكرار استدعاء Object Date. |
4 | int compareTo(Date date) يقارن قيمة العنصر المطلوب مع قيمة date. إذا كانت القيمتان متساويتان، فإنه يعود إلى 0. إذا كان العنصر المطلوب قبل date، فإنه يعود إلى قيمة سلبية. وإذا كان العنصر المطلوب بعد date، فإنه يعود إلى قيمة إيجابية. |
5 | int compareTo(Object obj) إذا كان obj من فئة Date، فإن العملية تساوي compareTo(Date). وإلا، سيقوم بتقديم ClassCastException. |
6 | boolean equals(Object date) إذا كان الوقت والتاريخ في Object Date المطلوب يحتويان على نفس القيمة كـ date، فإنه يعود إلى true، وإلا يعود إلى false. |
7 | long getTime( ) يعود إلى عدد الملي ثانية التي مضت من 1 يناير 1970. |
8 | int hashCode( ) يعود للعنصر المطلوب إلى قيمة الهشاشة. |
9 | void setTime(long time) تعيين time الوقت والتاريخ المحدد، مما يمثل الوقت الذي مضى من منتصف الليل في 1 يناير 1970 (بالملي ثانية). |
10 | String toString( ) تحويل Object Date المطلوب إلى نص، وعدد النتيجة. |
الحصول على التاريخ والوقت الحالي في Servlet Java سهل للغاية. يمكنك استخدام بسيط Object Date toString() إليك كيفية عرض التاريخ والوقت الحالي، باستخدام هذه الطريقة:
باكجيت com.w3codebox.test; استيراد java.io.IOException; استيراد java.io.PrintWriter; استيراد java.util.Date; استيراد javax.servlet.ServletException; استيراد javax.servlet.annotation.WebServlet; استيراد javax.servlet.http.HttpServlet; استيراد 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 date = new Date(); 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.toString() + "</h2>\n" + "</body></html>); } }
الآن، دعونا نبدأ في تجميع Servlet المذكور أعلاه، ونخلق المدخل المناسب في ملف web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>CurrentDate</servlet-name> <servlet-class>com.w3codebox.test.CurrentDate</servlet-class> </servlet> <servlet-mapping> <servlet-name>CurrentDate</servlet-name> <url-pattern>/TomcatTest/CurrentDate</url-pattern> </servlet-mapping> </web-app>
ثم استدعاء Servlet عبر زيارة http://localhost:8080/TomcatTest/CurrentDate. سيؤدي ذلك إلى إنتاج النتيجة التالية:
حاول تحديث عنوان URL http://localhost:8080/TomcatTest/CurrentDate، وستجد كلما تم تحديثه كل بضع ثوانٍ أن هناك فرقًا في الوقت الظاهر.
كما ذكرت أعلاه، يمكنك استخدام جميع الطرق المتاحة في Servlet. إذا كنت بحاجة إلى مقارنة تواريخين، إليك الطريقة:
يمكنك استخدام getTime() للحصول على الوقت الذي مر عليه من منتصف الليل من 1 يناير 1970 (بالملي ثانية) لكل من الاثنين، ثم مقارنة هذه القيم.
يمكنك استخدام الطرق before()، after() و equals(). نظرًا لأن 12 من الشهر يسبق 18، على سبيل المثال، يعود new Date(99, 2, 12).before(new Date (99, 2, 18)) إلى true.
يمكنك استخدام مكتبة compareTo()، التي تم تعريفها من قبل واجهة Comparable، والتحقق من قبل Date.
SimpleDateFormat هي فئة معينة لتنسيق وتحليل التواريخ بشكل حساس تجاه بيئة اللغة. تسمح SimpleDateFormat باختيار أي نموذج تنسيق توقيت تريد أن تستخدمه.
لنعدل على المثال السابق كما يلي:
باكجيت com.w3codebox.test; استيراد java.io.IOException; استيراد java.io.PrintWriter; استيراد java.text.SimpleDateFormat; استيراد java.util.Date; استيراد javax.servlet.ServletException; استيراد javax.servlet.annotation.WebServlet; استيراد javax.servlet.http.HttpServlet; استيراد 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 \t 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>); } }
مرة أخرى، قم بتشغيل Servlet المذكور أعلاه، ثم قم بزيارة http://localhost:8080/TomcatTest/CurrentDate لتشغيل Servlet. سيتم إنتاج النتيجة التالية:
استخدم سلسلة نمط الحدث لتعريف تنسيق الوقت. في هذا النمط، يتم الحفاظ على جميع الأحرف ASCII كأحرف النمط، والتي تعرف كما يلي:
حرف | وصف | مثال |
---|---|---|
G | مؤشر العصر | AD |
y | السنة المكونة من أربعة أرقام | 2001 |
M | الشهر في السنة | يوليو أو 07 |
d | اليوم في الشهر | 10 |
h | الساعات مع A.M./P.M. (1~12) | 12 |
H | الساعة في اليوم (0~23) | 22 |
m | الدقيقة في الساعة | 30 |
s | الثانية في الدقيقة | 55 |
S | المللي ثانية | 234 |
E | اليوم في الأسبوع | الثلاثاء |
D | اليوم في السنة | 360 |
F | الأسبوع الحالي هو الأسبوع الذي في الشهر | 2 (ثلاثاء الثاني في يوليو) |
w | الأسبوع في السنة | 40 |
W | الأسبوع في الشهر | 1 |
a | علامة A.M./P.M. | P.M. |
k | الساعة في اليوم (1~24) | 24 |
K | الساعات مع A.M./P.M. (0~11) | 10 |
z | المنطقة الزمنية | الوقت القياسي الشرقية |
' | هروب النص | محدد |
" | النقطة السفلية | ` |
للإطلاع على قائمة كاملة من طرق معالجة التواريخ المتاحة، يمكنك الرجوع إلى وثائق Java القياسية.