Servlet processing date
One of the most important advantages of using Servlet is that you can use most of the methods available in the core Java. This chapter will explain what Java provides java.util
in the bag Date
class, which encapsulates the current date and time.
Date
class supports two constructors. The first constructor initializes the object for the current date and time.
Date( )
The following constructor takes an argument equal to the number of milliseconds that have elapsed since midnight on January 1, 1970.
Date(long millisec)
Once you have an available Date object, you can call any of the following supported methods to use the date:
Serial number |
Method & description |
---|---|
1 |
Boolean after (Date date) returns true if the date contained in the called Date object is after the date specified by date, otherwise returns false. |
2 |
Boolean before (Date date) returns true if the date contained in the called Date object is before the date specified by date, otherwise returns false. |
3 |
Object clone () calls the Date object repeatedly. |
4 |
Int compareTo (Date date) compares the value of the calling object with the value of date. Returns 0 if the two values are equal. Returns a negative value if the calling object is before date. If the calling object is after date, a positive value is returned. |
5 |
Int compareTo (Object obj) if obj is a Date class, the operation is equivalent to compareTo (Date). Otherwise, it throws a ClassCastException. |
6 |
Boolean equals (Object date) returns true if the called Date object containsthe same time and date as specified by date, otherwise it returns false. |
7 |
Long getTime () returns the number of milliseconds that have elapsed since January 1, 1970. |
8 |
Int hashCode () returns a hash code for the calling object. |
9 |
Void setTime (long time) sets the time and date specified by time, which represents the elapsed time in milliseconds since midnight on January 1, 1970. |
10 |
The Date object called by the String toString () transformation is a string and returns the result. |
Get the current date and time
It is very easy to get the current date and time in Java Servlet. You can use a simple Date
object’s toString()
method to output the currentdate and time, as follows:
package com.runoob.test;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import 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 = "Display the current date and time";
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>");
}
}
Now, let’s compile the above Servlet and set it in the web.xml
create the appropriate entry in the file:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>CurrentDate</servlet-name>
<servlet-class>com.runoob.test.CurrentDate</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CurrentDate</servlet-name>
<url-pattern>/TomcatTest/CurrentDate</url-pattern>
</servlet-mapping>
</web-app>
The Servlet is then called by accessing the http://localhost:8080/TomcatTest/CurrentDate. This will produce the following results:
Try to refresh URL http://localhost:8080/TomcatTest/CurrentDate, and you will notice the difference in display time every few seconds.
Date comparison
As mentioned above, you can use all the available Java methods in Servlet. If you need to compare two dates, here is the method:
You can use the
getTime()
to get the elapsed time in milliseconds between the two objects since midnight on January 1, 1970, and then compare the two values.You can use the method
before( )
、after( )
andequals( )
. Because the 12th is before the 18th in a month, for examplenew Date(99, 2, 12).before(new Date (99, 2, 18))
return to true.You can use the
compareTo( )
method, defined by the Comparable interface and implemented by Date.
Format the date using SimpleDateFormat
SimpleDateFormat
is a concrete class that formats and parses dates in a locale-sensitive manner. SimpleDateFormat
allows you to select any user-defined date-time formatted mode.
Let’s modify the above example as follows:
package com.runoob.test;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import 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 = "Display the current date and time";
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("yyyy.MM.dd 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>");
}
}
Compile the above Servlet again, and then call the Servlet by accessing http://localhost:8080/TomcatTest/CurrentDate. This will produce the following results:
A simple format code for date format
Use the event pattern string to specify the time format. In this mode, all ASCII letters are retained as pattern letters, which are defined as follows:
Character |
Description |
Example |
---|---|---|
G |
Era indicator |
AD |
Y |
A four-digit year. |
2001 |
M |
The month of the year |
July or 07 |
D |
The day of the month |
10 |
H |
With A.M./P.M. Hours of (1: 12) |
12 |
H |
The hour ordinal of the day (023) |
22 |
M |
The minute of an hour |
30 |
S |
The second of a minute |
55 |
S |
Millisecond |
234 |
E |
What day of the week is it? |
Tuesday |
D |
The day of the year |
360 |
F |
The week is the first week of this month. |
2 (second Wed. In July) |
W |
The week of the year |
40 |
W |
The week of the month |
1 |
A |
A.M./P.M. Marking |
PM |
K |
The hour ordinal of the day (1-24) |
24 |
K |
With A.M./P.M. Hours of (011) |
10 |
Z |
Time zone |
Eastern Standard Time |
‘ |
Escape for text |
Delimiter |
For a complete list of available date processing methods, you can refer to the standard Java documentation.