Latest web development tutorials

Servlet การประมวลผลวันที่

หนึ่งในข้อดีที่สำคัญที่สุดของการใช้ Servlet ที่สามารถนำมาใช้ในส่วนของแกน Java วิธีการใช้ได้ บทนี้จะอธิบายแพคเกจjava.util ที่ให้ไว้โดยชั้นวันที่Java ที่สุนทรีย์วันและเวลาปัจจุบัน

ระดับวันที่สนับสนุนทั้งสองก่อสร้าง ตัวสร้างครั้งแรกในการเริ่มต้นวัตถุที่วันและเวลาปัจจุบัน

Date( )

ตัวสร้างต่อไปนี้ยอมรับพารามิเตอร์ที่เท่ากับจำนวนมิลลิวินาทีที่ผ่านไปตั้งแต่ 1 มกราคม 1970 ในเวลาเที่ยงคืน

Date(long millisec)

เมื่อคุณมีวัตถุที่มีอยู่วันที่คุณสามารถเรียกวิธีใดวิธีหนึ่งดังต่อไปนี้จะใช้สนับสนุนวันที่:

序号方法 & 描述
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วันที่วัตถุเดียวของ()วิธีการส่งออกวันและเวลาปัจจุบันดังนี้

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: // localhost: 8080 / TomcatTest / CurrentDate รีเฟรชทุกความแตกต่างไม่กี่วินาทีคุณจะหาเวลาการแสดงผล

เปรียบเทียบวัน

ดังกล่าวข้างต้นคุณสามารถใช้ทุกวิธีการที่มีอยู่ใน Java เซิร์ฟเล็ต หากคุณจำเป็นต้องเปรียบเทียบสองวันเป็นวิธีการต่อไปนี้:

  • คุณสามารถใช้ getTime () เพื่อรับวัตถุทั้งสองตั้งแต่ 1 มกราคม 1970 เที่ยงคืนเวลาที่ผ่านไป (เป็นมิลลิวินาที) จากนั้นทั้งสองค่า
  • คุณสามารถใช้วิธีก่อน () หลังจาก () และเท่ากับ () ตั้งแต่วันที่ 12 จนถึงวันที่ 18 เช่นวันใหม่ (99, 2, 12) .before (วันที่ใหม่ (99, 2, 18)) ผลตอบแทนเดือนที่แท้จริง
  • คุณสามารถใช้ compareTo () วิธีการซึ่งถูกกำหนดโดยอินเตอร์เฟซที่เทียบเคียงตามวันที่ตระหนัก

การใช้ 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 ตัวบ่งชี้ยุค AD
Y สี่ปีหลัก 2001
M เดือนของปี หรือ 7 กรกฎาคม
D สองสามวันแรกของเดือน 10
H AM / PM ชั่วโมง (1-12) ด้วย 12
H ไม่กี่ชั่วโมงแรกของวัน (0-23) 22
ม. หนึ่งชั่วโมงของส่วนแรก 30
s จุดหนึ่งในไม่กี่วินาทีแรก 55
S มิลลิวินาที 234
E สัปดาห์ของสัปดาห์ วันอังคาร
D สองสามวันแรกของปี 360
F สัปดาห์เป็นสัปดาห์ที่เดือนนี้ 2 (สองฟิลด์เว้นส์เดย์ในเดือนกรกฎาคม)
W ไม่กี่สัปดาห์แรกของปีนี้ 40
W ไม่กี่สัปดาห์แรกของเดือนมกราคม 1
AM / PM เครื่องหมาย PM
K ไม่กี่ชั่วโมงแรกของวัน (1-24) 24
K AM / PM ชั่วโมง (0-11) 10
Z โซนเวลา เวลามาตรฐานตะวันออก
' หนีข้อความ คั่น
" ราคาเดียว `

สำหรับรายการที่สมบูรณ์ของวิธีการประมวลผลวันที่มีให้ดูคุณสามารถดูเอกสาร Java มาตรฐาน