Учебники

Сервлеты — дата обработки

Одним из наиболее важных преимуществ использования Servlet является то, что вы можете использовать большинство методов, доступных в ядре Java. Этот учебник проведет вас через предоставленный Java класс Date, который доступен в пакете java.util , этот класс инкапсулирует текущую дату и время.

Класс Date поддерживает два конструктора. Первый конструктор инициализирует объект с текущей датой и временем.

Date( )

Следующий конструктор принимает один аргумент, равный количеству миллисекунд, прошедших с полуночи 1 января 1970 г.

Date(long millisec)

Если у вас есть объект Date, вы можете вызвать любой из следующих методов поддержки, чтобы поиграть с датами:

Sr.No. Методы и описание
1

логическое после (Дата дата)

Возвращает true, если вызывающий объект Date содержит дату, которая позже даты, указанной в date, в противном случае он возвращает false.

2

логическое значение до (дата дата)

Возвращает true, если вызывающий объект Date содержит дату, более раннюю, чем та, которая указана в date, в противном случае он возвращает false.

3

Клон объекта ()

Дублирует вызывающий объект Date.

4

int compareTo (Дата дата)

Сравнивает значение вызывающего объекта со значением даты. Возвращает 0, если значения равны. Возвращает отрицательное значение, если вызывающий объект раньше даты. Возвращает положительное значение, если вызывающий объект позже даты.

5

int compareTo (Object obj)

Действует одинаково для compareTo (Date), если obj имеет класс Date. В противном случае он создает исключение ClassCastException.

6

логическое равенство (дата объекта)

Возвращает true, если вызывающий объект Date содержит то же время и дату, что и объект, указанный в date, в противном случае он возвращает false.

7

long getTime ()

Возвращает количество миллисекунд, прошедших с 1 января 1970 года.

8

int hashCode ()

Возвращает хеш-код для вызывающего объекта.

9

void setTime (долгое время)

Устанавливает время и дату, указанные по времени, которое представляет истекшее время в миллисекундах с полуночи 1 января 1970 года.

10

Строка toString ()

Преобразует вызывающий объект Date в строку и возвращает результат.

логическое после (Дата дата)

Возвращает true, если вызывающий объект Date содержит дату, которая позже даты, указанной в date, в противном случае он возвращает false.

логическое значение до (дата дата)

Возвращает true, если вызывающий объект Date содержит дату, более раннюю, чем та, которая указана в date, в противном случае он возвращает false.

Клон объекта ()

Дублирует вызывающий объект Date.

int compareTo (Дата дата)

Сравнивает значение вызывающего объекта со значением даты. Возвращает 0, если значения равны. Возвращает отрицательное значение, если вызывающий объект раньше даты. Возвращает положительное значение, если вызывающий объект позже даты.

int compareTo (Object obj)

Действует одинаково для compareTo (Date), если obj имеет класс Date. В противном случае он создает исключение ClassCastException.

логическое равенство (дата объекта)

Возвращает true, если вызывающий объект Date содержит то же время и дату, что и объект, указанный в date, в противном случае он возвращает false.

long getTime ()

Возвращает количество миллисекунд, прошедших с 1 января 1970 года.

int hashCode ()

Возвращает хеш-код для вызывающего объекта.

void setTime (долгое время)

Устанавливает время и дату, указанные по времени, которое представляет истекшее время в миллисекундах с полуночи 1 января 1970 года.

Строка toString ()

Преобразует вызывающий объект Date в строку и возвращает результат.

Получение текущей даты и времени

Это очень легко получить текущую дату и время в сервлете Java. Вы можете использовать простой объект Date с методом toString () для печати текущей даты и времени следующим образом:

// 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>"
      );
   }
}

Теперь давайте скомпилируем вышеприведенный сервлет и создадим соответствующие записи в web.xml, а затем вызовем этот сервлет, используя URL http: // localhost: 8080 / CurrentDate. Это даст следующий результат —

Display Current Date & Time

Mon Jun 21 21:46:49 GMT+04:00 2010

Попробуйте обновить URL http: // localhost: 8080 / CurrentDate, и вы найдете разницу в секундах при каждом обновлении.

Сравнение дат

Как я уже упоминал выше, вы можете использовать все доступные методы Java в вашем сервлете. Если вам нужно сравнить две даты, используйте следующие методы:

  • Вы можете использовать getTime (), чтобы получить количество миллисекунд, прошедших с полуночи 1 января 1970 года, для обоих объектов, а затем сравнить эти два значения.

  • Вы можете использовать методы before (), after () и equals (). Поскольку 12-е число месяца предшествует 18-му, например, новая Дата (99, 2, 12) .before (новая Дата (99, 2, 18)) возвращает true.

  • Вы можете использовать метод compareTo (), который определяется интерфейсом Comparable и реализуется датой.

Вы можете использовать getTime (), чтобы получить количество миллисекунд, прошедших с полуночи 1 января 1970 года, для обоих объектов, а затем сравнить эти два значения.

Вы можете использовать методы before (), after () и equals (). Поскольку 12-е число месяца предшествует 18-му, например, новая Дата (99, 2, 12) .before (новая Дата (99, 2, 18)) возвращает true.

Вы можете использовать метод compareTo (), который определяется интерфейсом Comparable и реализуется датой.

Форматирование даты с использованием SimpleDateFormat

SimpleDateFormat — это конкретный класс для форматирования и разбора дат в зависимости от языка. SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени.

Давайте изменим приведенный выше пример следующим образом —

// 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>"
      );
   }
}

Скомпилируйте вышеприведенный сервлет еще раз и затем вызовите этот сервлет, используя URL http: // localhost: 8080 / CurrentDate. Это даст следующий результат —

Display Current Date & Time

Mon 2010.06.21 at 10:06:44 PM GMT+04:00

Простые коды формата DateFormat

Чтобы указать формат времени, используйте строку шаблона времени. В этом шаблоне все буквы ASCII зарезервированы как буквы шаблона, которые определены следующим образом:

символ Описание пример
г Обозначение эпохи ОБЪЯВЛЕНИЕ
Y Год в четыре цифры 2001
M Месяц в году Июль или 07
d День в месяце 10
час Час в AM / PM (1 ~ 12) 12
ЧАС Час в день (0 ~ 23) 22
м Минута в час 30
s Секунда в минуту 55
S миллисекунды 234
Е День в неделю вторник
D День в году 360
F День недели в месяце 2 (вторая среда в июле)
вес Неделя в году 40
W Неделя в месяце 1
AM / PM маркер ВЕЧЕРА
К Час в день (1 ~ 24) 24
К Час в AM / PM (0 ~ 11) 10
Z Часовой пояс Восточное стандартное время
Побег для текста Разделитель
« Одинарные цитаты `

Полный список постоянно доступных методов для манипулирования датой вы можете найти в стандартной документации Java.