Latest web development tutorials

Дата обработки сервлетов

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

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

Date( )

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

Date(long millisec)

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

序号方法 & 描述
1boolean after(Date date)
如果调用的 Date 对象中包含的日期在 date 指定的日期之后,则返回 true,否则返回 false。
2boolean before(Date date)
如果调用的 Date 对象中包含的日期在 date 指定的日期之前,则返回 true,否则返回 false。
3Object clone( )
重复调用 Date 对象。
4int compareTo(Date date)
把调用对象的值与 date 的值进行比较。如果两个值是相等的,则返回 0。如果调用对象在 date 之前,则返回一个负值。如果调用对象在 date 之后,则返回一个正值。
5int compareTo(Object obj)
如果 obj 是 Date 类,则操作等同于 compareTo(Date)。否则,它会抛出一个 ClassCastException。
6boolean equals(Object date)
如果调用的 Date 对象中包含的时间和日期与 date 指定的相同,则返回 true,否则返回 false。
7long getTime( )
返回 1970 年 1 月 1 日以来经过的毫秒数。
8int hashCode( )
为调用对象返回哈希代码。
9void setTime(long time)
设置 time 指定的时间和日期,这表示从 1970 年 1 月 1 日午夜以来经过的时间(以毫秒为单位)。
10String toString( )
转换调用的 Date 对象为一个字符串,并返回结果。

Возвращает текущую дату и время

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

package com.w3big.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 = "显示当前的日期和时间";
		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.w3big.test.CurrentDate</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CurrentDate</servlet-name>
    <url-pattern>/TomcatTest/CurrentDate</url-pattern>
  </servlet-mapping>
</web-app>

Тогда посетите HTTP: для вызова Servlet 8080 / TomcatTest / CurrentDate: // Localhost. Это даст следующие результаты:

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

Сравнить даты

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

  • Вы можете использовать GetTime (), чтобы получить два объекта, начиная с 1 января 1970 года в полночь истекло время (в миллисекундах), то эти два значения.
  • Вы можете использовать метод перед (), после того, как () и равенства (). С 12-го до 18-го, например, новые Дата (99, 2, 12) .before (новые Дата (99, 2, 18)) возвращает месяц правда.
  • Вы можете использовать метод СотрагеТо (), который определяется по сравнению с аналогичным интерфейсом по дате воплотить в жизнь.

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

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

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

package com.w3big.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 = "显示当前的日期和时间";
		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>");
	}

}

Обобщение предыдущего Servlet снова, а затем посетить HTTP: для вызова Servlet 8080 / TomcatTest / CurrentDate: // Localhost. Это даст следующие результаты:


Формат кода Формат Простая дата

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

характер описание примеров
G индикатор Эра нашей эры
Y Четыре цифры года 2001
M Месяц года Или 7 июля
d Первые несколько дней месяца 10
час AM / PM, час (от 1 до 12) с 12
H Первые несколько часов в день (от 0 до 23) 22
м Один час первой фракции 30
s Одно очко в первые несколько секунд 55
S миллисекунды 234
Е Неделя недели вторник
D Первые несколько дней в году 360
F Неделя недели, где в этом месяце 2 (второй ср в июле)
вес Первые несколько недель в году 40
W Первые несколько недель января 1
AM / PM метка PM
К Первые несколько часов дня (от 1 до 24) 24
К С AM / PM час (от 0 до 11) 10
Z Временная зона Восточное стандартное время
' Побег для текста Ограничитель
" Одинарные кавычки `

Для получения полного списка методов обработки дат, доступных для просмотра, вы можете обратиться к стандартной документации Java.