บทความนี้แบ่งปันวิธีการทั่วไปในการเปรียบเทียบวันที่ระหว่างที่ใช้กันทั่วไปสำหรับการอ้างอิงในอนาคต
อุ่นเครื่อง: รับเวลาปัจจุบัน
SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); // กำหนดรูปแบบวันที่
string nowdate = df.format (วันที่ใหม่ ()); // วันที่ใหม่ () คือการใช้เวลาระบบปัจจุบัน
หมายเหตุ: ผู้เขียนคิดเสมอว่าประเภทวันที่ไม่ดีเท่ากับประเภทสตริงดังนั้นการเปรียบเทียบต่อไปนี้ทั้งหมดเกี่ยวกับวันที่ของประเภทสตริง หากคุณดื้อรั้นมากนี่คือวิธีการแปลงวันที่เป็นสตริง:
SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); // กำหนดรูปแบบวันที่
สตริงวันที่ = df.format (เวลาประเภทวันที่);
1. การเปรียบเทียบขนาดของวันที่ของสองประเภทสตริง
public static int compare_date (สตริงวันที่ 1, สตริงวันที่ 2) {dateformat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); ลอง {วันที่ dt1 = df.parse (วันที่ 1); วันที่ dt2 = df.parse (วันที่ 2); if (dt1.getTime ()> dt2.getTime ()) {system.out.println ("dt1 ก่อน dt2"); กลับ 1; } อื่นถ้า (dt1.getTime () <dt2.getTime ()) {system.out.println ("DT1 อยู่หลังจาก dt2"); กลับ -1; } else {return 0; }} catch (ยกเว้นข้อยกเว้น) {Exception.printStackTrace (); } return 0; - 2. ส่งคืนจำนวนวันที่แตกต่างระหว่างสองประเภทสตริง
public Static int daysbetween (String smdate, String bdate) {SimpledateFormat SDF = New SimpleDateFormat ("YYYY-MM-DD"); ปฏิทิน cal = calendar.getInstance (); เวลานาน 1 = 0; เวลานาน 2 = 0; ลอง {cal.Settime (sdf.parse (smdate)); time1 = cal.gettimeinmillis (); Cal.Settime (sdf.parse (bdate)); time2 = cal.gettimeinmillis (); } catch (exception e) {e.printstacktrace (); } ยาวระหว่าง _days = (time2-time1)/(1,000*3600*24); return integer.parseint (string.valueof (ระหว่าง _days)); -3. ส่งคืนจำนวนชั่วโมงที่แตกต่างระหว่างสองประเภทสตริง
public Static Int DaysBetween2 (String StartTime, String Endtime) {SimpledateFormat SDF = New SimpleDateFormat ("YYYY-MM-DD HH"); ปฏิทิน cal = calendar.getInstance (); เวลานาน 1 = 0; เวลานาน 2 = 0; ลอง {Cal.Settime (sdf.parse (starttime)); time1 = cal.gettimeinmillis (); Cal.Settime (sdf.parse (endtime)); time2 = cal.gettimeinmillis (); } catch (exception e) {e.printstacktrace (); } ยาวระหว่าง _days = (time2-time1)/(1,000*3600); return integer.parseint (string.valueof (ระหว่าง _days)); -4. คำนวณวันที่ที่ทับซ้อนกันของสองวันที่
/ ** * คำนวณวันที่ของการซ้อนทับระหว่างสองวัน * @param str1 เริ่มต้นวันที่ 1 * @param str2 สิ้นสุดวันที่ 1 * @param str3 เริ่มต้นวันที่ 2 * @param str4 end date2 * @return * @throws ยกเว้น */ แผนที่สาธารณะ DateFormat DF = ใหม่ SimpleDateFormat ("YYYY-MM-DD"); สตริง startdate = ""; string enddate = ""; ลอง {วันที่ dt1 = df.parse (str1); วันที่ dt2 = df.parse (str2); วันที่ dt3 = df.parse (str3); วันที่ dt4 = df.parse (str4); if (dt1.getTime () <= dt3.getTime () && dt3.getTime () <= dt2.getTime () && dt2.getTime () <= dt4.getTime ()) {mesg = "f"; // coincid startDate = str3; enddate = str2; } if (dt1.getTime ()> = dt3.getTime () && dt3.getTime () <= dt2.getTime () && dt2.getTime () <= dt4.getTime ()) {mesg = "f"; // coincid startDate = str1; enddate = str2; } if (dt3.getTime () <= dt1.getTime () && dt1.getTime () <= dt4.getTime () && dt4.getTime () <= dt2.getTime ()) {mesg = "f"; // coincid startDate = str1; enddate = str4; } if (dt3.getTime () <= dt4.getTime () && dt4.getTime () <= dt2.getTime ()) {mesg = "f"; // coincid startdate = str1; enddate = str4; } if (dt3.getTime ()> = dt1.getTime () && dt1.getTime () <= dt4.getTime () && dt4.getTime () <= dt2.getTime ()) {mesg = "f"; enddate = str4; } system.out.println (startdate+"----"+enddate); } catch (parseexception e) {e.printstacktrace (); โยน parseexception ใหม่ (e.getMessage (), 0); } catch (exception e) {e.printstacktrace (); โยนข้อยกเว้นใหม่ (e); } แผนที่ <string, Object> map = new hashmap <string, object> (); map.put ("startdate", startdate); map.put ("enddate", enddate); แผนที่กลับ; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น