Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะเปรียบเทียบสองวันที่ในรูปแบบสตริงใน Java ได้อย่างไร


java.text.SimpleDateFormat คลาสใช้เพื่อจัดรูปแบบและแยกสตริงเป็นวันที่และวันที่เป็นสตริง

  • หนึ่งในตัวสร้างของคลาสนี้ยอมรับค่า String ที่แสดงรูปแบบวันที่ที่ต้องการ และสร้างวัตถุ SimpleDateFormat
  • การแยกวิเคราะห์/แปลงสตริงเป็นวัตถุวันที่ สร้างอินสแตนซ์ของคลาสนี้โดยส่งสตริงรูปแบบที่ต้องการ
  • แยกวิเคราะห์สตริงวันที่โดยใช้เมธอด parse()
  • วันที่ util.Date class แสดงถึงช่วงเวลาหนึ่งๆ ที่เจาะจง คลาสนี้มีวิธีการต่างๆ เช่น before(), after() และ equals() เพื่อเปรียบเทียบสองวันที่

ตัวอย่าง

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

นำเข้า java.text.ParseException; นำเข้า java.text.SimpleDateFormat; นำเข้า java.util.Date; การสาธิตคลาสสาธารณะ { โมฆะสาธารณะสาธารณะหลัก (สตริง args []) โยน ParseException { SimpleDateFormat formatter =ใหม่ SimpleDateFormat ("yyyy-" dd-MM"); สตริง dateStr1 ="2007-11-25"; สตริง dateStr2 ="1999-9-12"; //การแยกวิเคราะห์วัตถุสตริงให้เป็นวันที่ Date date1 =formatter.parse(dateStr1); วันที่ date2 =formatter.parse (dateStr2); bool1 บูลีน =date1.after(date2); bool2 บูลีน =date1.before(date2); bool3 บูลีน =date1.equals(date2); if(bool1){ System.out.println(dateStr1+" อยู่หลัง "+dateStr2); } else if(bool2){ System.out.println(dateStr1+" อยู่ก่อน "+dateStr2); } else if(bool3){ System.out.println(dateStr1+" เท่ากับ "+dateStr2); } }}

ผลลัพธ์

 

2007-11-25 อยู่หลัง 1999-9-12

วิธี Parse() ของคลาส LocalDate

วิธี parse() ของคลาส LocalDate ยอมรับค่า String ที่แสดงวันที่และส่งกลับวัตถุ LocalDate

ตัวอย่าง

<ก่อน>นำเข้า java.time.LocalDate; การทดสอบคลาสสาธารณะ { โมฆะคงที่สาธารณะหลัก (สตริง args []) { สตริง dateStr1 ="2007-11-25"; สตริง dateStr2 ="1999-9-12"; LocalDate date1 =LocalDate.parse (dateStr1); LocalDate date2 =LocalDate.parse (dateStr1); บูลีน bool1 =date1.isAfter(date2); bool2 บูลีน =date1.isBefore(date2); บูลีน bool3 =date1.isEqual(date2); if(bool1){ System.out.println(dateStr1+" อยู่หลัง "+dateStr2); } else if(bool2){ System.out.println(dateStr1+" อยู่ก่อน "+dateStr2); } else if(bool3){ System.out.println(dateStr1+" เท่ากับ "+dateStr2); } }}

ผลลัพธ์

 

2007-11-25 เท่ากับ 1999-9-12