Serwlety - data obsługi
Jedną z najważniejszych zalet używania Servlet jest to, że można używać większości metod dostępnych w rdzeniu Javy. Ten samouczek przeprowadzi Cię przez dostarczoną JavęDate klasa, która jest dostępna w java.util pakiet, ta klasa zawiera aktualną datę i godzinę.
Klasa Date obsługuje dwa konstruktory. Pierwszy konstruktor inicjuje obiekt z bieżącą datą i godziną.
Date( )
Poniższy konstruktor akceptuje jeden argument, który jest równy liczbie milisekund, które upłynęły od północy 1 stycznia 1970
Date(long millisec)
Gdy masz już dostępny obiekt Date, możesz wywołać dowolną z następujących metod wsparcia, aby grać z datami -
Sr.No. | Metody i opis |
---|---|
1 | boolean after(Date date) Zwraca wartość true, jeśli wywołujący obiekt Date zawiera datę późniejszą niż określona przez date, w przeciwnym razie zwraca false. |
2 | boolean before(Date date) Zwraca wartość true, jeśli wywołujący obiekt Date zawiera datę wcześniejszą niż określona przez date, w przeciwnym razie zwraca false. |
3 | Object clone( ) Duplikuje wywołujący obiekt Date. |
4 | int compareTo(Date date) Porównuje wartość obiektu wywołującego z wartością date. Zwraca 0, jeśli wartości są równe. Zwraca wartość ujemną, jeśli obiekt wywołujący jest wcześniejszy niż data. Zwraca wartość dodatnią, jeśli obiekt wywołujący jest późniejszy niż data. |
5 | int compareTo(Object obj) Działa identycznie jak compareTo (Date), jeśli obiekt należy do klasy Date. W przeciwnym razie zgłasza ClassCastException. |
6 | boolean equals(Object date) Zwraca wartość true, jeśli wywołujący obiekt Date zawiera tę samą godzinę i datę, co określona przez date, w przeciwnym razie zwraca false. |
7 | long getTime( ) Zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970 r. |
8 | int hashCode( ) Zwraca kod skrótu dla wywołującego obiektu. |
9 | void setTime(long time) Ustawia godzinę i datę zgodnie z godziną, która reprezentuje czas, który upłynął w milisekundach od północy 1 stycznia 1970 r. |
10 | String toString( ) Konwertuje wywołujący obiekt Date na ciąg i zwraca wynik. |
Pobieranie aktualnej daty i godziny
Bardzo łatwo jest uzyskać aktualną datę i godzinę w Java Servlet. Możesz użyć prostego obiektu Date z metodą toString () , aby wydrukować bieżącą datę i godzinę w następujący sposób -
// Import required java libraries
import java.io.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Display Current Date & Time";
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>"
);
}
}
Teraz skompilujmy powyżej serwlet i utwórzmy odpowiednie wpisy w web.xml, a następnie wywołajmy ten serwlet przy użyciu adresu URL http: // localhost: 8080 / CurrentDate. Dałoby to następujący wynik -
Display Current Date & Time
Mon Jun 21 21:46:49 GMT+04:00 2010
Spróbuj odświeżyć adres URL http: // localhost: 8080 / CurrentDate, a zauważysz różnicę w sekundach przy każdym odświeżaniu.
Porównanie dat
Jak wspomniałem powyżej, możesz użyć wszystkich dostępnych metod Java w swoim serwlecie. W przypadku konieczności porównania dwóch dat, poniżej przedstawiono metody -
Możesz użyć metody getTime (), aby uzyskać liczbę milisekund, które upłynęły od północy 1 stycznia 1970 r. Dla obu obiektów, a następnie porównać te dwie wartości.
Możesz użyć metod przed (), after () i equals (). Ponieważ 12 dzień miesiąca przypada na przykład przed 18. dniem, new Date (99, 2, 12) .before (new Date (99, 2, 18)) zwraca wartość true.
Możesz użyć metody compareTo (), która jest definiowana przez interfejs Comparable i implementowana przez Date.
Formatowanie daty przy użyciu SimpleDateFormat
SimpleDateFormat to konkretna klasa do formatowania i analizowania dat w sposób uwzględniający lokalizację. SimpleDateFormat umożliwia rozpoczęcie od wybrania dowolnych wzorców zdefiniowanych przez użytkownika do formatowania daty i godziny.
Zmodyfikujmy powyższy przykład w następujący sposób -
// Import required java libraries
import java.io.*;
import java.text.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class CurrentDate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Display Current Date & Time";
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>"
);
}
}
Ponownie skompiluj powyższy serwlet, a następnie wywołaj go przy użyciu adresu URL http: // localhost: 8080 / CurrentDate. Dałoby to następujący wynik -
Display Current Date & Time
Mon 2010.06.21 at 10:06:44 PM GMT+04:00
Proste kody formatu DateFormat
Aby określić format czasu, użyj łańcucha wzorca czasu. W tym wzorze wszystkie litery ASCII są zarezerwowane jako litery wzoru, które są zdefiniowane w następujący sposób:
Postać | Opis | Przykład |
---|---|---|
sol | Wyznacznik ery | OGŁOSZENIE |
y | Rok za pomocą czterech cyfr | 2001 |
M | Miesiąc w roku | Lipiec lub 07 |
re | Dzień w miesiącu | 10 |
godz | Godzina w godzinach AM / PM (1 ~ 12) | 12 |
H. | Godzina w dzień (0 ~ 23) | 22 |
m | Minuta za godzinę | 30 |
s | Sekunda za minutę | 55 |
S | Milisekunda | 234 |
mi | Dzień w tygodniu | wtorek |
re | Dzień w roku | 360 |
fa | Dzień tygodnia w miesiącu | 2 (druga środa lipca) |
w | Tydzień w roku | 40 |
W. | Tydzień w miesiącu | 1 |
za | Znacznik AM / PM | PO POŁUDNIU |
k | Godzina w dzień (1 ~ 24) | 24 |
K. | Godzina w godzinach AM / PM (0 ~ 11) | 10 |
z | Strefa czasowa | Wschodni czas standardowy |
' | Escape dla tekstu | Separator |
" | Pojedynczy cudzysłów | ` |
Pełną listę dostępnych metod manipulowania datą można znaleźć w standardowej dokumentacji języka Java.