تشترك هذه المقالة في الأساليب الشائعة لمقارنة التواريخ بين الاستخدام الشائع للرجوع إليها في المستقبل.
الاحماء: احصل على الوقت الحالي
SimpleDateFormat df = new SimpleDateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ // تنسيق تاريخ التعيين
السلسلة nowDate = df.format (New Date ()) ؛ // New Date () هي الحصول على وقت النظام الحالي
ملاحظة: اعتقد المؤلف دائمًا أن نوع التاريخ ليس جيدًا مثل نوع السلسلة ، وبالتالي فإن المقارنات التالية تدور حول تاريخ نوع السلسلة. إذا كنت عنيدًا جدًا ، حسنًا ، إليك طريقة تحويل التاريخ إلى سلسلة:
SimpleDateFormat df = new SimpleDateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ // تنسيق تاريخ التعيين
تاريخ السلسلة = df.format (وقت التاريخ) ؛
1. مقارنة حجم تواريخ نوعين من السلسلة
public static int compare_date (string date1 ، string date2) {dateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss") ؛ حاول {Date dt1 = df.parse (date1) ؛ تاريخ DT2 = df.parse (Date2) ؛ if (dt1.getTime ()> dt2.getTime ()) {system.out.println ("dt1 قبل dt2") ؛ العودة 1 ؛ } آخر if (dt1.getTime () <dt2.getTime ()) {system.out.println ("dt1 بعد dt2") ؛ العودة -1 ؛ } آخر {return 0 ؛ }} catch (استثناء استثناء) {استثناء. printstacktrace () ؛ } العودة 0 ؛ } 2. إرجاع عدد الأيام التي تختلف بين تواريخ نوعين من السلسلة
int int static daysbetween (String smdate ، String bdate) {simpledateformat sdf = new SimpleDateFormat ("yyyy-mm-dd") ؛ Calendar Cal = Calendar.getInstance () ؛ وقت طويل 1 = 0 ؛ وقت طويل 2 = 0 ؛ حاول {cal.settime (sdf.parse (smdate)) ؛ time1 = cal.getTimeInMillis () ؛ Cal.Settime (sdf.parse (bdate)) ؛ time2 = cal.getTimeInMillis () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } منذ فترة طويلة بين _days = (time2-time1)/(1000*3600*24) ؛ إرجاع integer.parseint (string.valueof (inter_days)) ؛ }3. إرجاع عدد الساعات التي تختلف بين نوعين من السلسلة
int int int static public daybetween2 (string starttime ، endtime string) {simpleDateFormat sdf = new SimpleToThformat ("Yyyy-MM-DD HH") ؛ Calendar Cal = Calendar.getInstance () ؛ وقت طويل 1 = 0 ؛ وقت طويل 2 = 0 ؛ حاول {cal.settime (sdf.parse (startTime)) ؛ time1 = cal.getTimeInMillis () ؛ Cal.Settime (sdf.parse (Endtime)) ؛ time2 = cal.getTimeInMillis () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } منذ فترة طويلة بين _days = (time2-time1)/(1000*3600) ؛ إرجاع integer.parseint (string.valueof (inter_days)) ؛ }4. احسب التواريخ المتداخلة لتاريخ اثنين
/ ** * احسب تاريخ التداخل بين تاريخين * param str1 date1 * param str2 date1 * param str3 start date2 * param str4 end date2 * @thrats stisply */ public static map <String ، componsonrq (string str1 ، String str3 ، String str4) DateFormat df = new SimplEdateFormat ("Yyyy-MM-DD") ؛ String startDate = "" ؛ سلسلة enddate = "" ؛ حاول {Date 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" ؛ // conincid startDate = str3 ؛ enddate = str2 ؛ } if (dt1.getTime ()> = dt3.getTime () && dt3.getTime () <= dt2.getTime () && dt2.getTime () <= dt4.getTime ()) {mesg = "f" ؛ // clincid 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" ؛ // clincid 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 (استثناء e) {E.PrintStackTrace () ؛ رمي استثناء جديد (هـ) ؛ } Map <String ، Object> map = new HashMap <string ، Object> () ؛ map.put ("startDate" ، startDate) ؛ map.put ("enddate" ، enddate) ؛ خريطة العودة }ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.