Servlets - Ngày xử lý
Một trong những ưu điểm quan trọng nhất của việc sử dụng Servlet là bạn có thể sử dụng hầu hết các phương thức có sẵn trong core Java. Hướng dẫn này sẽ đưa bạn qua Java được cung cấpDate lớp học có sẵn trong java.util gói, lớp này đóng gói ngày và giờ hiện tại.
Lớp Date hỗ trợ hai hàm tạo. Hàm khởi tạo đầu tiên khởi tạo đối tượng với ngày và giờ hiện tại.
Date( )
Hàm tạo sau đây chấp nhận một đối số bằng số mili giây đã trôi qua kể từ nửa đêm, ngày 1 tháng 1 năm 1970
Date(long millisec)
Khi bạn có sẵn đối tượng Ngày, bạn có thể gọi bất kỳ phương thức hỗ trợ nào sau đây để chơi với ngày -
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | boolean after(Date date) Trả về true nếu đối tượng Date đang gọi có chứa ngày muộn hơn ngày được chỉ định theo ngày, nếu không, nó trả về false. |
2 | boolean before(Date date) Trả về true nếu đối tượng Date đang gọi chứa ngày sớm hơn ngày được chỉ định bởi ngày tháng, nếu không, nó trả về false. |
3 | Object clone( ) Nhân bản đối tượng Ngày đang gọi. |
4 | int compareTo(Date date) So sánh giá trị của đối tượng đang gọi với giá trị của ngày tháng. Trả về 0 nếu các giá trị bằng nhau. Trả về giá trị âm nếu đối tượng gọi sớm hơn ngày. Trả về giá trị dương nếu đối tượng gọi muộn hơn ngày. |
5 | int compareTo(Object obj) Hoạt động giống hệt nhau để so sánhTo (Ngày) nếu obj thuộc lớp Ngày. Nếu không, nó ném ra một ClassCastException. |
6 | boolean equals(Object date) Trả về true nếu đối tượng Date đang gọi chứa cùng thời gian và ngày với đối tượng được chỉ định theo ngày, ngược lại, nó trả về false. |
7 | long getTime( ) Trả về số mili giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970. |
số 8 | int hashCode( ) Trả về mã băm cho đối tượng đang gọi. |
9 | void setTime(long time) Đặt thời gian và ngày như được chỉ định theo thời gian, biểu thị thời gian đã trôi qua tính bằng mili giây từ nửa đêm, ngày 1 tháng 1 năm 1970. |
10 | String toString( ) Chuyển đổi đối tượng Date đang gọi thành một chuỗi và trả về kết quả. |
Lấy ngày và giờ hiện tại
Điều này rất dễ dàng để lấy ngày và giờ hiện tại trong Java Servlet. Bạn có thể sử dụng một đối tượng Date đơn giản với phương thức toString () để in ngày và giờ hiện tại như sau:
// 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>"
);
}
}
Bây giờ chúng ta hãy biên dịch servlet ở trên và tạo các mục nhập thích hợp trong web.xml và sau đó gọi servlet này bằng URL http: // localhost: 8080 / CurrentDate. Điều này sẽ tạo ra kết quả sau:
Display Current Date & Time
Mon Jun 21 21:46:49 GMT+04:00 2010
Hãy thử làm mới URL http: // localhost: 8080 / CurrentDate và bạn sẽ thấy sự khác biệt trong vài giây mỗi khi bạn làm mới.
So sánh ngày
Như tôi đã đề cập ở trên, bạn có thể sử dụng tất cả các phương thức Java có sẵn trong Servlet của mình. Trong trường hợp bạn cần so sánh hai ngày, sau đây là các phương pháp:
Bạn có thể sử dụng getTime () để lấy số mili giây đã trôi qua kể từ nửa đêm, ngày 1 tháng 1 năm 1970, cho cả hai đối tượng và sau đó so sánh hai giá trị này.
Bạn có thể sử dụng các phương thức trước (), sau () và bằng (). Vì ngày 12 của tháng đến trước ngày 18, ví dụ: new Date (99, 2, 12) .before (new Date (99, 2, 18)) trả về true.
Bạn có thể sử dụng phương thức CompareTo (), được xác định bởi giao diện So sánh và được triển khai theo Ngày.
Định dạng ngày bằng SimpleDateFormat
SimpleDateFormat là một lớp cụ thể để định dạng và phân tích cú pháp ngày tháng theo cách thức địa phương. SimpleDateFormat cho phép bạn bắt đầu bằng cách chọn bất kỳ mẫu nào do người dùng xác định để định dạng ngày-giờ.
Hãy để chúng tôi sửa đổi ví dụ trên như sau:
// 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>"
);
}
}
Biên dịch servlet trên một lần nữa và sau đó gọi servlet này bằng URL http: // localhost: 8080 / CurrentDate. Điều này sẽ tạo ra kết quả sau:
Display Current Date & Time
Mon 2010.06.21 at 10:06:44 PM GMT+04:00
Mã định dạng DateFormat đơn giản
Để chỉ định định dạng thời gian, hãy sử dụng chuỗi mẫu thời gian. Trong mẫu này, tất cả các chữ cái ASCII được dành riêng dưới dạng các chữ cái mẫu, được định nghĩa như sau:
Tính cách | Sự miêu tả | Thí dụ |
---|---|---|
G | Người chỉ định thời đại | QUẢNG CÁO |
y | Năm có bốn chữ số | 2001 |
M | Tháng trong năm | Tháng bảy hoặc 07 |
d | Ngày trong tháng | 10 |
h | Giờ tính theo SA / CH (1 ~ 12) | 12 |
H | Giờ trong ngày (0 ~ 23) | 22 |
m | Phút sau giờ | 30 |
S | Giây sau phút | 55 |
S | Mili giây | 234 |
E | Ngày trong tuần | Thứ ba |
D | Ngày trong năm | 360 |
F | Ngày trong tuần trong tháng | 2 (thứ tư thứ hai trong tháng bảy) |
w | Tuần trong năm | 40 |
W | Tuần trong tháng | 1 |
a | Điểm đánh dấu AM / PM | BUỔI CHIỀU |
k | Giờ trong ngày (1 ~ 24) | 24 |
K | Giờ SAU / CH (0 ~ 11) | 10 |
z | Múi giờ | giờ chuẩn phương Đông |
' | Thoát cho văn bản | Dấu phân cách |
" | Trích dẫn duy nhất | ` |
Để có danh sách đầy đủ các phương thức có sẵn không đổi để thao tác ngày tháng, bạn có thể tham khảo tài liệu Java tiêu chuẩn.