1. ภาพรวมของวันที่ใน Java <br /> วันที่เป็นเนื้อหาที่ซับซ้อนมากใน Java สำหรับวันที่ในสภาพแวดล้อมภาษาและประเทศที่แตกต่างกันความเป็นสากลของวันที่การแปลงระหว่างวันที่และเวลาการเพิ่มและการลบของวันที่และรูปแบบการแสดงผลของวันที่ล้วนเป็นปัญหาที่ซับซ้อนมาก
ใน Java วันที่ดำเนินการส่วนใหญ่เกี่ยวข้องกับคลาสต่อไปนี้:
1. java.util.date
วันที่คลาสแสดงถึงช่วงเวลาที่เฉพาะเจาะจงแม่นยำถึงมิลลิวินาที เริ่มต้นด้วย JDK 1.1 ควรใช้คลาสปฏิทินเพื่อใช้การแปลงระหว่างฟิลด์วันที่และเวลาและควรใช้คลาส DateFormat ในการจัดรูปแบบและวิเคราะห์สตริงวันที่ วิธีการในวันที่ตีความวันที่เป็นปีเดือนวันชั่วโมงชั่วโมงนาทีและค่าที่สองถูกยกเลิก
2. java.text.dateFormat (คลาสนามธรรม)
DateFormat เป็นคลาสที่เป็นนามธรรมของการจัดรูปแบบวันที่/เวลา subclasses ที่จัดรูปแบบและวิเคราะห์วันที่หรือเวลาในลักษณะที่ไม่ขึ้นกับภาษา subclasses วันที่/เวลา (เช่น simpledateFormat) อนุญาตให้จัดรูปแบบ (เช่นวันที่-> ข้อความ), การวิเคราะห์ (text-> วันที่) และมาตรฐาน แสดงถึงวันที่เป็นวัตถุวันที่หรือเป็นจำนวนมิลลิวินาทีเริ่มต้นจากช่วงเวลา GMT (GMT) 1970, 1 มกราคม, 00:00:00
3. java.text.simpledateFormat (subclass Dateformat Direct)
SimpledateFormat เป็นคลาสเฉพาะที่จัดรูปแบบและวิเคราะห์วันที่ในวิธีที่เกี่ยวข้องกับสถานที่ ช่วยให้การจัดรูปแบบ (วันที่-> ข้อความ), การวิเคราะห์ (text-> วันที่) และการทำให้เป็นมาตรฐาน
SimpledateFormat ช่วยให้คุณสามารถเลือกโหมดรูปแบบเวลาวันที่ที่ผู้ใช้กำหนด อย่างไรก็ตามยังคงแนะนำให้ใช้ getTimeInstance, getDateInstance หรือ getDateTimeInstance ใน DateFormat เพื่อสร้างรูปแบบวันที่ใหม่
4. java.util.calendar (คลาสนามธรรม)
คลาสปฏิทินเป็นคลาสนามธรรมที่ให้วิธีการบางอย่างสำหรับการแปลงช่วงเวลาที่เฉพาะเจาะจงเป็นชุดของฟิลด์ปฏิทินเช่นปี, เดือน, day_of_month, ชั่วโมง ฯลฯ และให้วิธีการบางอย่างสำหรับการจัดการฟิลด์ปฏิทินเช่นวันที่ของสัปดาห์ถัดไป ทันทีสามารถแสดงเป็นค่ามิลลิวินาทีซึ่งเป็นชดเชยจากยุค (เช่น, 00: 00: 00.000, GMT, 1 มกราคม 1970, GMT)
เช่นเดียวกับคลาสที่ไวต่อสถานที่อื่น ๆ ปฏิทินให้วิธีการคลาส getInstance เพื่อให้ได้วัตถุทั่วไปของประเภทนี้ วิธีการ getInstance ของปฏิทินส่งคืนวัตถุปฏิทินที่มีฟิลด์ปฏิทินเริ่มต้นตามวันที่และเวลาปัจจุบัน
5. java.util.Gregoriancalendar (คลาสย่อยโดยตรงของปฏิทิน)
Gregoriancalendar เป็นคลาสย่อยที่เป็นรูปธรรมของปฏิทินที่ให้บริการระบบปฏิทินมาตรฐานที่ประเทศส่วนใหญ่ใช้ในโลก
Gregoriancalendar เป็นปฏิทินไฮบริดที่รองรับทั้งระบบปฏิทินจูเลียนและเกรกอเรียนที่ได้รับการสนับสนุนจากความไม่ต่อเนื่องครั้งเดียวซึ่งโดยค่าเริ่มต้นนั้นสอดคล้องกับวันที่ Gregorian เมื่อปฏิทิน Gregorian ก่อตั้งขึ้น (บางประเทศก่อตั้งขึ้นเมื่อวันที่ 15 ตุลาคม 1582 วันที่เริ่มต้นสามารถเปลี่ยนแปลงได้โดยผู้โทรโดยเรียก SetGregorianChange ()
2. การใช้ java.util.date
1. บทนำสู่ API ของ java.util.date
คลาส java.util.date แสดงถึงช่วงเวลาที่เฉพาะเจาะจงซึ่งแม่นยำถึงมิลลิวินาที มีหลายวิธีที่มีให้ แต่หลายคนล้าสมัยและไม่แนะนำ รายการต่อไปนี้มีเพียงวิธีการที่ไม่ล้าสมัย:
สรุปวิธีการก่อสร้าง
-
วันที่()
กำหนดวัตถุวันที่และเริ่มต้นวัตถุนี้ด้วยเวลาปัจจุบันเพื่อระบุเวลาที่จัดสรร (แม่นยำถึงมิลลิวินาที)
วันที่ (วันที่ยาว)
กำหนดวัตถุวันที่และเริ่มต้นวัตถุนี้เพื่อแสดงจำนวนมิลลิวินาทีที่ระบุตั้งแต่เวลามาตรฐานมาตรฐาน (เรียกว่า "Epoch" นั่นคือ 00:00:00 GMT เมื่อวันที่ 1 มกราคม 1970)
สรุปวิธีการ
-
บูลีนหลังจาก (วันที่เมื่อ)
ทดสอบว่าวันนี้เป็นวันที่ตามวันที่ระบุหรือไม่
บูลีนก่อน (วันที่เมื่อ)
ทดสอบว่าวันที่นี้ก่อนวันที่ระบุหรือไม่
Object Clone ()
ส่งคืนสำเนาของวัตถุนี้
int compereto (วันที่อื่น ๆ )
เปรียบเทียบลำดับของสองวันที่
บูลีนเท่ากับ (Object OBJ)
เปรียบเทียบความเท่าเทียมกันของสองวัน
GetTime นาน ()
ส่งคืนจำนวนมิลลิวินาทีที่แสดงโดยวัตถุวันที่นี้ตั้งแต่วันที่ 1 มกราคม 1970 00:00:00 GMT
int hashcode ()
ส่งคืนค่ารหัสแฮชของวัตถุนี้
เป็นโมฆะ settime (นาน)
ตั้งค่าวัตถุวันนี้เพื่อแสดงจุดเวลาในเวลามิลลิวินาทีหลังจาก 00:00:00 GMT ในวันที่ 1 มกราคม 1970
สตริง toString ()
แปลงวัตถุวันที่นี้เป็นสตริงของแบบฟอร์มต่อไปนี้: dow mon dd hh: mm: ss zzz yyyy ที่ไหน:
ดาวโจนส์เป็นหนึ่งวันของสัปดาห์ (ดวงอาทิตย์, จันทร์, อังคาร, พุธ, พฤหัส, วันเสาร์)
จันทร์คือเดือน (ม.ค. , ก.พ. , มี.ค. , เม.ย. , พฤษภาคม, มิ.ย. , ม.ค. , สิงหาคม, ก.ย. , ตุลาคม, พฤศจิกายน, ธันวาคม)
DD เป็นวันในเดือนมกราคม (01 ถึง 31) แสดงเป็นเลขทศนิยมสองหลัก
HH คือชั่วโมงของวัน (00 ถึง 23) แสดงเป็นเลขทศนิยมสองหลัก
MM คือนาที (00 ถึง 59) ในชั่วโมงและแสดงเป็นเลขทศนิยมสองหลัก
SS คือจำนวนวินาที (00 ถึง 61) ในหนึ่งนาทีแสดงเป็นเลขทศนิยมสองหลัก
ZZZ เป็นโซนเวลา (และสะท้อนเวลาประหยัดเวลากลางวัน) ตัวย่อของโซนเวลามาตรฐานรวมถึงตัวย่อของโซนเวลาที่ได้รับการยอมรับโดยวิธีการแยกวิเคราะห์ หากไม่มีข้อมูลโซนเวลา ZZZ จะว่างเปล่าเช่นไม่มีอักขระใด ๆ เลย
Yyyy เป็นปีหนึ่งแสดงเป็นเลขทศนิยม 4 หลัก
นี่คือตัวอย่างที่ครอบคลุมของคลาสวันที่:
Public Class TestDate {โมฆะคงที่สาธารณะหลัก (String [] args) {testDate testDate = ใหม่ testDate (); testdate.getSystemCurrentTime (); testdate.getCurrentDate (); } / *** รับเวลาระบบปัจจุบัน* System.currentTimeMillis () ส่งคืนเวลาระบบปัจจุบันและผลลัพธ์เริ่มต้นที่ 0:00:00 ในวันที่ 1 มกราคม 1970 จำนวนมิลลิวินาทีที่ผ่านไปจนกว่าจะมีการดำเนินการโปรแกรม เวลา---"); System.out.println (System.currentTimeMillis ()); } โมฆะสาธารณะ getCurrentDate () {system.out.println ("--- รับเวลาปัจจุบันของระบบ ---"); // สร้างและเริ่มต้นวันที่ (ค่าเริ่มต้นคือวันที่ปัจจุบัน) วันที่วันที่ = วันที่ใหม่ (); System.out.println ("วันที่ปัจจุบันคือ =" + date.toString ()); System.out.println ("จำนวนมิลลิวินาทีที่มีประสบการณ์ตั้งแต่วันที่ 1 มกราคม 1970 =" + date.getTime ()); - 2. การใช้ Java.Text.DateFormat คลาสบทคัดย่อ
DateFormat เป็นคลาสที่เป็นนามธรรมของการจัดรูปแบบวันที่/เวลา subclasses ที่จัดรูปแบบและวิเคราะห์วันที่หรือเวลาในลักษณะที่ไม่ขึ้นกับภาษา subclasses วันที่/เวลา (เช่น simpledateFormat) อนุญาตให้จัดรูปแบบ (เช่นวันที่-> ข้อความ), การวิเคราะห์ (text-> วันที่) และมาตรฐาน แสดงถึงวันที่เป็นวัตถุวันที่หรือเป็นจำนวนมิลลิวินาทีเริ่มต้นจากช่วงเวลา GMT (GMT) 1970, 1 มกราคม, 00:00:00
DateFormat จัดเตรียมวิธีการเรียนจำนวนหนึ่งเพื่อให้ได้รูปแบบวันที่/เวลาเริ่มต้นตามค่าเริ่มต้นหรือสถานที่ที่กำหนดและรูปแบบการจัดรูปแบบหลายรูปแบบ รูปแบบสไตล์รวมถึงเต็ม, ยาว, ปานกลางและสั้น รายละเอียดเพิ่มเติมและตัวอย่างของการใช้สไตล์เหล่านี้มีอยู่ในคำอธิบายวิธีการ
DateFormat ช่วยจัดรูปแบบและวิเคราะห์วันที่สำหรับสถานที่ใด ๆ เป็นเวลาหลายเดือนสัปดาห์และแม้กระทั่งรูปแบบปฏิทิน (ปฏิทินจันทรคติและแสงอาทิตย์) รหัสอาจไม่เกี่ยวข้องกับการประชุมสถานที่อย่างสมบูรณ์
ในการจัดรูปแบบวันที่ในสถานที่ปัจจุบันให้ใช้วิธีการโรงงานคงที่:
myString = dateFormat.getDateInstance (). รูปแบบ (myDate);
หากคุณจัดรูปแบบหลายวันที่มีประสิทธิภาพมากขึ้นในการรับรูปแบบและใช้หลายครั้งเพื่อให้ระบบไม่จำเป็นต้องได้รับข้อมูลเกี่ยวกับภาษาสิ่งแวดล้อมและข้อตกลงระดับชาติหลายครั้ง
DateFormat df = dateFormat.getDateInstance (); สำหรับ (int i = 0; i <mydate.length; ++ i) {output.println (df.format (mydate [i]) +";"); -
ในการจัดรูปแบบวันที่ของสถานที่ต่าง ๆ ให้ระบุในการโทรไปยัง getDateInstance ()
DateFormat DF = DateFormat.getDateInstance (DateFormat.long, locale.france);
DateFormat ยังสามารถใช้สำหรับการวิเคราะห์
myDate = df.parse (mystring);
ใช้ getDateInstance เพื่อรับรูปแบบวันที่มาตรฐานสำหรับประเทศนั้น นอกจากนี้ยังมีวิธีการโรงงานคงที่อื่น ๆ ใช้ GetTimeInstance เพื่อรับรูปแบบเวลาสำหรับประเทศนั้น ใช้ getDateTimeInstance เพื่อรับรูปแบบวันที่และเวลา ตัวเลือกที่แตกต่างกันสามารถส่งผ่านไปยังวิธีการโรงงานเหล่านี้เพื่อควบคุมความยาวของผลลัพธ์ (จากระยะสั้นถึงปานกลางถึงยาวถึงเต็ม) ผลลัพธ์ที่แน่นอนขึ้นอยู่กับสถานที่ แต่โดยปกติ:
สั้นเป็นตัวเลขที่สมบูรณ์เช่น 12.13.52 หรือ 15:30 น.
สื่อนานกว่าเช่น 12 ม.ค. 1952
ยาวนานขึ้นเช่น 12 มกราคม 1952 หรือ 15:30:32 น
มีการระบุอย่างเต็มรูปแบบเช่นวันอังคารที่ 12 เมษายน 1952 AD หรือ 3:30:42 PM PST
หากคุณต้องการคุณสามารถตั้งค่าโซนเวลาในรูปแบบได้ หากคุณต้องการกำหนดการควบคุมการจัดรูปแบบหรือการวิเคราะห์เพิ่มเติม (หรือให้ผู้ใช้ควบคุมมากขึ้น) คุณสามารถลองหล่อวันที่ที่ได้จากวิธีการโรงงานไปยัง SimpledateFormat ใช้ได้ผลสำหรับประเทศส่วนใหญ่ เพียงจำไว้ว่าให้วางไว้ในบล็อกลองในกรณีที่มีรูปแบบพิเศษ
นอกจากนี้คุณยังสามารถใช้วิธีการวิเคราะห์และการจัดรูปแบบด้วยการแยกและฟิลด์เพื่อวิเคราะห์บางส่วนของสตริงทีละขั้นตอน จัดเรียงฟิลด์เฉพาะใด ๆ หรือค้นหาตำแหน่งที่เลือกสตริงบนหน้าจอ
DateFormat ไม่ได้ซิงโครนัส ขอแนะนำให้สร้างอินสแตนซ์รูปแบบอิสระสำหรับแต่ละเธรด หากหลายเธรดเข้าถึงรูปแบบในเวลาเดียวกันจะต้องมีการซิงโครไนซ์ภายนอก
3. การใช้ java.text.simpledateFormat (subclass direct direct)
SimpledateFormat เป็นคลาสเฉพาะที่จัดรูปแบบและวิเคราะห์วันที่ในวิธีที่เกี่ยวข้องกับสถานที่ ช่วยให้การจัดรูปแบบ (วันที่-> ข้อความ), การวิเคราะห์ (text-> วันที่) และการทำให้เป็นมาตรฐาน
SimpledateFormat ช่วยให้คุณสามารถเลือกโหมดรูปแบบเวลาวันที่ที่ผู้ใช้กำหนด อย่างไรก็ตามยังคงแนะนำให้ใช้ getTimeInstance, getDateInstance หรือ getDateTimeInstance ใน DateFormat เพื่อสร้างรูปแบบวันที่ใหม่ แต่ละวิธีคลาสดังกล่าวสามารถส่งคืนรูปแบบวันที่/เวลาเริ่มต้นในโหมดฟอร์แมตเริ่มต้น รูปแบบรูปแบบสามารถแก้ไขได้โดยใช้วิธีการใช้ Patternn ตามต้องการ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้วิธีการเหล่านี้ให้ดู DateFormat
โหมดวันที่และเวลา
รูปแบบวันที่และเวลาถูกระบุโดยสตริงวันที่และเวลา ในสตริงรูปแบบวันที่และเวลาตัวอักษรที่ไม่ได้อ้างถึง 'A' ถึง 'Z' และ 'A' ถึง 'Z' ถูกตีความว่าเป็นตัวอักษรรูปแบบเพื่อแสดงองค์ประกอบวันที่หรือเวลาสตริงเวลา ข้อความสามารถล้อมรอบด้วยเครื่องหมายคำพูดเดียว (') เพื่อหลีกเลี่ยงคำอธิบาย "''" หมายถึงคำพูดเดี่ยว ตัวละครอื่น ๆ ทั้งหมดไม่ได้ตีความ พวกเขาจะถูกคัดลอกไปยังสตริงเอาต์พุตเมื่อจัดรูปแบบหรือจับคู่กับสตริงอินพุตเมื่อวิเคราะห์
สำหรับข้อมูลอ้างอิงเพิ่มเติมคุณสามารถดูเอกสาร JDK API นี่คือตัวอย่างที่ครอบคลุม:
Public Class TestDateFormat {โมฆะคงที่สาธารณะหลัก (String [] args) พ่น parseexception {testDateFormat tdf = ใหม่ testDateFormat (); tdf.dateformat (); } /*** ทดสอบคลาส SimpledateFormat* @throws parseexception* /โมฆะสาธารณะ DateFormat () พ่น parsexception {// สร้างวันที่วันที่ = วันที่ใหม่ (); // สร้างรูปแบบวันที่ที่แตกต่างกันวันที่ df1 = dateformat.getInstance (); DateFormat DF2 = ใหม่ SimpleDateFormat ("YYYY-MM-01 HH: MM: SS EE"); DateFormat DF3 = DateFormat.getDateInstance (DateFormat.full, locale.china); // สร้างรูปแบบวันที่ด้วยความยาวที่ระบุของประเทศที่ระบุ ความยาวแตกต่างกันและความสมบูรณ์ของวันที่ที่แสดงก็แตกต่างกันเช่นกัน DateFormat DF4 = New SimpledateFormat ("Yyyyy Year MM เดือน DD วัน HH ชั่วโมงมม. นาที SS วินาที EE", locale.china); DateFormat DF5 = New SimpledateFormat ("YYYY-MM-DD HH: MM: SS Eeeeee", locale.us); DateFormat DF6 = New SimpleDateFormat ("YYYY-MM-DD"); // วันที่ส่งออกในรูปแบบที่แตกต่างกัน System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - DF3.Format (วันที่)); DF5.Format (วันที่)); วันที่วันที่ 2 = df2.parse ("2016-01-24 02:51:07 วันอาทิตย์"); วันที่วันที่ 3 = df3.parse ("2016-01-24"); วันที่วันที่ 4 = df4.parse ("2016-01-24 02:51:18 วันอาทิตย์"); วันที่วันที่ 6 = df6.parse ("2016-01-24"); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ System.out.println (วันที่ 2); 4. java.util.calendar (คลาสนามธรรม)
java.util.calendar เป็นคลาสนามธรรมซึ่งเป็นตัวแทนนามธรรมของเวลาระบบ มันมีวิธีการบางอย่างสำหรับการแปลงช่วงเวลาที่เฉพาะเจาะจงเป็นชุดของฟิลด์ปฏิทินเช่นปีเดือน, day_of_month, ชั่วโมง ฯลฯ และให้วิธีการบางอย่างสำหรับการจัดการฟิลด์ปฏิทิน (เช่นได้รับวันที่สัปดาห์ถัดไป) ทันทีสามารถแสดงเป็นค่ามิลลิวินาทีซึ่งเป็นชดเชยจากยุค (เช่น, 00: 00: 00.000, GMT, 1 มกราคม 1970, GMT)
เช่นเดียวกับคลาสที่ไวต่อสถานที่อื่น ๆ ปฏิทินให้วิธีการคลาส getInstance เพื่อให้ได้วัตถุทั่วไปของประเภทนี้ วิธีการ getInstance ของปฏิทินส่งคืนวัตถุปฏิทินที่มีฟิลด์ปฏิทินเริ่มต้นตามวันที่และเวลาปัจจุบัน
อินสแตนซ์ของปฏิทินคือการแสดงนามธรรมของเวลาระบบ จากอินสแตนซ์ของปฏิทินคุณสามารถรู้ข้อมูลเช่นปีเดือนวันสัปดาห์เดือนและเดือน มีวิธีการคงที่ (int x) ในคลาสปฏิทิน ด้วยวิธีนี้คุณจะได้รับค่าบางส่วน (ปีเดือนวันสัปดาห์เดือนและอื่น ๆ ) ข้อมูลที่เกี่ยวข้อง พารามิเตอร์ X คือค่าอัตราผลตอบแทนที่กำหนดไว้ในปฏิทิน
กับดักบางอย่างในปฏิทินสามารถลดลงได้อย่างง่ายดาย:
1. สัปดาห์ปฏิทินเริ่มต้นในวันอาทิตย์โดยมีค่าคงที่ 0
2. เดือนปฏิทินเริ่มตั้งแต่เดือนมกราคมโดยมีค่าคงที่ 0
3. วันแรกของปฏิทินของแต่ละเดือนคือ 1
5. java.util.Gregoriancalendar (คลาสย่อยโดยตรงของปฏิทิน)
Gregoriancalendar เป็นคลาสย่อยที่เป็นรูปธรรมของปฏิทินที่ให้บริการระบบปฏิทินมาตรฐานที่ประเทศส่วนใหญ่ใช้ในโลก ใช้ร่วมกับคลาสนามธรรมปฏิทิน
นี่คือตัวอย่างที่ครอบคลุมเพื่อดูการใช้งานของคลาสปฏิทิน:
Public Class TestCalendar {โมฆะคงที่สาธารณะหลัก (String [] args) พ่น parseexception {testCalendar testCalendar = testCalendar ใหม่ (); TestCalendar.testCalendar (); TestCalendar.testCalendar2 (); } โมฆะสาธารณะ TestCalendar () {// วิธีสร้างปฏิทินปฏิทินปฏิทิน Now1 = Calendar.getInstance (); ปฏิทิน Now2 = New Gregoriancalendar (); ปฏิทิน Now3 = New Gregoriancalendar (2016, 01, 24); ปฏิทิน Now4 = New Gregoriancalendar (2016, 01, 24, 15, 55); // เส้นทาง: เดือนปฏิทินคือ 0 ~ 11 ปฏิทิน Now5 = New Gregoriancalendar (2016, 01, 24, 15, 55, 44); ปฏิทิน Now6 = New Gregoriancalendar (locale.us); ปฏิทิน Now7 = New Gregoriancalendar (Timezone.getTimeZone ("GMT-8: 00")); // ตั้งปฏิทิน Now2.Settime (วันที่ใหม่ ()); System.out.println (Now2); Now2.settimeinmillis (วันที่ใหม่ (). getTime ()); System.out.println (Now2); // กำหนดรูปแบบเอาต์พุตภาษาจีนของวันที่และส่งออกวันที่ simpledateFormat df = new SimpledateFormat ("Yyyyy Year mm เดือน DD วัน HH ชั่วโมงมม. นาที SS วินาที E", locale.china); System.out.println ("รับเอาต์พุตรูปแบบภาษาจีนของวันที่:" + df.format (now5.getTime ())); System.out.println (); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Now5.get (Calendar.month)); Now5.get (Calendar.second)); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"}; System.out.println ("เดือนของวัตถุตอนนี้คือ:" + เดือน [now5.get (calendar.month)]); } โมฆะสาธารณะ testCalendar2 () พ่น parseexception {// รับจำนวนสูงสุดของวันในปฏิทินเดือนปัจจุบัน cal = calendar.getInstance (); int maxday = cal.getactualmaximum (calendar.day_of_month); int mindday = cal.getactualminimum (calendar.day_of_month); System.out.println (Maxday); // ใช้วันสุดท้ายของเดือน DateFormat Formatter3 = New SimpledateFormat ("yyyy-mm-"+maxday); System.out.println (format3.format (cal.getTime ())); // ใช้วันสุดท้ายของเดือน DateFormat Formatter4 = New SimpledateFormat ("yyyy-mm-"+minday); System.out.println (formatter4.format (cal.gettime ())); // ค้นหาจำนวนวันระหว่างสองวันที่ java.text.simpledateFormat format = ใหม่ java.text.simpledateFormat ("yyyy-mm-dd"); java.util.date Begindate = format.parse ("2007-12-24"); java.util.date enddate = format.parse ("2007-12-25"); Long Day = (enddate.getTime ()-Begindate.getTime ())/(24*60*60*1000); System.out.println ("จำนวนวันห่างกัน ="+วัน); // วันที่หนึ่งปีที่ผ่านมา java.text.format formatter5 = ใหม่ java.text.simpledateFormat ("yyyy-mm-dd"); java.util.date TodayDate = ใหม่ java.util.date (); Long beforetime = (วันนี้วันนี้ getTime ()/1000) -60*60*24*365; Todaydate.settime (beforetime*1,000); สตริง beforedate = formatter5.Format (วันนี้); System.out.println (beforedate); ปฏิทินปฏิทิน = ปฏิทิน GetInstance (); Calendar.add (Calendar.year, -1); System.out.println (formatter5.Format (calendar.getTime ())); // วันจันทร์และวันอาทิตย์ของสัปดาห์ปัจจุบัน simpledateFormat dateformat = new SimpledateFormat ("yyyymmdd"); Gregoriancalendar Gregoriancalendar = New Gregoriancalendar (); int dayinweek = gregoriancalendar.get (calendar.day_of_week); int offset = 0; if (dayinweek == 1) {// วันอาทิตย์ออฟเซ็ต = 6; } else {// วันจันทร์ถึงวันเสาร์ออฟเซ็ต = Dayinweek - 2; } gregoriancalendar.add (gregoriancalendar.day_of_month, -Offset); String sday = dateformat.format (gregoriancalendar.getTime ()); gregoriancalendar.add (gregoriancalendar.day_of_month, 6); string eday = dateformat.format (gregoriancalendar.getTime ()); System.out.println ("วันจันทร์ของสัปดาห์นี้:" + sday); System.out.println ("วันอาทิตย์ของสัปดาห์นี้:" + eday); -3. สรุป
มักจะมีห้าด้านของวันที่ใน Java:
1. วันที่สร้าง
2. การแสดงรูปแบบวันที่
3. การแปลงวันที่ (ส่วนใหญ่เป็นการแปลงร่วมกับสตริง)
4. ได้รับวันที่อายุกลางเดือน, วัน, ชั่วโมง, นาที, วินาที, สัปดาห์, สัปดาห์, เดือน, ฯลฯ
5. การเปรียบเทียบขนาดวันที่และการเพิ่มและการลบวันที่
ข้างต้นคือวิธีการใช้งานวันที่และเวลา Java สรุปสำหรับคุณ ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของคุณ