تشارك هذه المقالة فئة أدوات تشغيل تاريخ Java بالنسبة لك ، والحصول على التاريخ المحدد قبل يوم واحد ويوم واحد بعد اليوم ؛ تحويل التاريخ ؛ عدد الأيام بين تاريخين وأدوات أخرى للرجوع إليها. المحتوى المحدد كما يلي
استيراد java.text.parseException ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.arraylist ؛ استيراد java.util.calendar ؛ استيراد java.util.date ؛ استيراد java.util.list ؛ الفئة العامة DateUtil { / ** * اليوم السابق يتم الحصول على التاريخ المحدد * * param المحدد يوم * @param format * regurn * @throws استثناء * / تاريخ الثابت العام getDayBefore (تاريخ التاريخ ، تنسيق السلسلة) {calendar c = calendar.getInstance () ؛ C.Settime (التاريخ) ؛ int day = c.get (calendar.date) ؛ C.Set (Calendar.Date ، Day - 1) ؛ string daybeforestr = جديد simpledateFormat (format) .Format (c.getTime ()) ؛ تاريخ Daybefore = null ؛ جرب {daybefore = new SimplEdateFormat (format) .Parse (daybeforester) ؛ } catch (parseException e) {E.PrintStackTrace () ؛ } العودة إلى قبل ؛ } / ** * اليوم بعد الحصول على التاريخ المحدد * * param dextredday * @return * / public static date getDayAfter (تاريخ التاريخ ، تنسيق السلسلة) {calendar c = calendar.getInstance () ؛ C.Settime (التاريخ) ؛ int day = c.get (calendar.date) ؛ C.Set (Calendar.date ، اليوم + 1) ؛ String DayAfterStr = جديد simpledateformat (format) .Format (c.getTime ()) ؛ DATE DAYAFTER = NULL ؛ Try {dayafter = new SimpleDateFormat (format) .Parse (DayAfterStr) ؛ } catch (parseException e) {E.PrintStackTrace () ؛ } return dayafter ؛ } / ** * احصل على اليوم السابق للتاريخ المحدد * * param المحدد يوم * param format * regurn * @throws استثناء * / سلسلة ثابتة عامة getSpecifiedDayBefore (سلسلة محددة ، تنسيق السلسلة) {// simpledateFormat simpledateThormat = new // simpledateformat (yyyyymmm-dd ") ؛ التقويم c = calendar.getInstance () ؛ تاريخ التاريخ = فارغ ؛ حاول {date = new SimplEdateFormat ("yy-mm-dd"). parse (محدد يوم) ؛ } catch (parseException e) {E.PrintStackTrace () ؛ } C.Settime (Date) ؛ int day = c.get (calendar.date) ؛ C.Set (Calendar.Date ، Day - 1) ؛ string daybefore = new SimplEdateFormat ("Yyyy-MM-DD"). format (c.getTime ()) ؛ العودة قبل يوم. } / ** * اليوم بعد الحصول على التاريخ المحدد * * param المحدد يوم * @return * / السلسلة الثابتة العامة getSpecifiedDayAfter (سلسلة محددة ، تنسيق السلسلة) {calendar c = calendar.getInstance () ؛ تاريخ التاريخ = فارغ ؛ حاول {// date = new SimplEdateFormat ("yy-mm-dd"). parse (dexitedday) ؛ Date = new SimplEdateFormat (Format) .Parse (dexumberday) ؛ } catch (parseException e) {E.PrintStackTrace () ؛ } C.Settime (Date) ؛ int day = c.get (calendar.date) ؛ C.Set (Calendar.date ، اليوم + 1) ؛ // string dayafter = new // simpledateFormat ("Yyyy-MM-DD"). Format (c.getTime ()) ؛ String DayAfter = جديد simpledateFormat (format) .Format (c.getTime ()) ؛ إرجاع Dayafter ؛ } / ** * دقة نوع التاريخ في سلسلة في التنسيق المحدد * * param تاريخ اليوم * param تنسيق تحديد التنسيق * @REGAN * / public static string date2String (Date Day ، تنسيق السلسلة) {String dateStfort = new SimpleDateFormat (format). إرجاع البيانات } / ** * قم بتحويل السلسلة إلى نوع التاريخ في التنسيق المحدد * * param تاريخ اليوم * param تنسيق تحديد التنسيق * @REGARN * / public static date String2Date (سلسلة البيانات ، تنسيق السلسلة) {date strdate = null ؛ حاول {strdate = جديد spiStOftFormat (format) .Parse (dateStR) ؛ } catch (parseException e) {E.PrintStackTrace () ؛ } إرجاع strdate ؛ } / ***** title: datedateTate2CompareValue* description: نوعان من التاريخ يقارنون أحجام* param dayafter نوع التاريخ* param نوع التاريخ* @تنسيق param* return boolean* @therwes SimpleDateFormat (نمط) ؛ حاول {Date d1 = sdf.parse (sdf.format (dayafter)) ؛ تاريخ d2 = sdf.parse (sdf.format (date)) ؛ if (d1.getTime ()> = d2.getTime ()) {return true ؛ }} catch (parseException e) {E.PrintStackTrace () ؛ } إرجاع خطأ ؛ } / ** * قارن أحجام اثنين من التاريخين ، السنة والشهر واليوم * title: dateCompareValue * description: نوع واحد مستقر واحد التاريخ يقارن الحجم * param date1 سلسلة * @param date2 type * @param date ، return * return * @throws * / public static boolean datistrdate SimplEdateFormat SDF = جديد spileDateFormat (نمط) ؛ حاول {Date d1 = sdf.parse (date1) ؛ تاريخ d2 = sdf.parse (sdf.format (date)) ؛ if (d1.getTime ()> = d2.getTime ()) {return true ؛ }} catch (parseException e) {// todo catch catch e.printstacktrace () ؛ } إرجاع خطأ ؛ } / ** * قارن أحجام تواريخين ، السنة والشهر واليوم * title: datestr2CompareValue * description: نوعان من السلسلة يقارن أحجام الوقت * param date1 * param date2 * return boolean * @thatrows * / suppressWarnings ("unused") public boolean booster2 (string) SimplEdateFormat SDF = جديد spileDateFormat (نمط) ؛ حاول {Date d1 = sdf.parse (date1) ؛ تاريخ d2 = sdf.parse (date2) ؛ if (d1.getTime ()> = d2.getTime ()) {return true ؛ }} catch (parseException e) {E.PrintStackTrace () ؛ } إرجاع خطأ ؛ } / ***** title: get2datelistdate* date 17 مايو ، 2016 في 2:11:48 PM* description: الحصول على مجموعة التاريخ من الأيام عن بعضها البعض خلال الوقت* paramparam predate time start* param @param nextdate time* paramparam format format* قائمة <Date> get2DatelistDate (سلسلة مسبقة ، سلسلة NextDate ، تنسيق السلسلة) {List <Date> list = new ArrayList <> () ؛ if (nextDate.equals (predate)) {// إذا كان وقت البدء ووقت الانتهاء متساويين ، والعودة مباشرة إلى list.add (dateutil.String2Date (قبل ، التنسيق)) ؛ قائمة العودة } string nexdate = dateUtil.getSpecifiedDayAfter (predate ، format) ؛ list.add (dateUtil.String2Date (predate ، format)) ؛ list.add (dateUtil.String2Date (nexdate ، format)) ؛ بينما (! nexdate.equals (nextDate)) {String nextNextDate = dateUtil.getSpecifiedDayAfter (nexdate ، format) ؛ list.add (DateUtil.String2Date (NextDate ، format)) ؛ nexdate = nextNextDate ؛ } قائمة الإرجاع ؛ } / ***** title: get2datelistdate* date 17 مايو ، 2016 في 2:11:48 PM* description: الحصول على مجموعة السلسلة من الأيام عن بعضهاً ما خلال الوقت قائمة <Tring> get2DatelistDatestest (السلسلة قبل ، سلسلة NextDate ، تنسيق السلسلة) {list <string> list = new ArrayList <> () ؛ if (nextDate.equals (predate)) {// إذا كان وقت البدء مساوياً لوقت الانتهاء ، فهو في نفس قائمة اليوم. قائمة العودة } string nexdate = dateUtil.getSpecifiedDayAfter (predate ، format) ؛ list.add (قبل) ؛ list.add (nexdate) ؛ بينما (! nexdate.equals (nextDate)) {String nextNextDate = dateUtil.getSpecifiedDayAfter (nexdate ، format) ؛ list.add (nextDate) ؛ nexdate = nextNextDate ؛ } قائمة الإرجاع ؛ } / ** * * * title: get2datelistwithdate * date 26 مايو ، 2016 في 9:20:29 صباحًا * description: احصل على التاريخ بين اثنين Get2DatelistWithDate (Date StartDate ، DateDate ، تنسيق السلسلة) {List <Date> list = new ArrayList <> () ؛ if (startDate.getTime ()> endDate.getTime ()) {return list ؛ } string startDatester = dateUtil.date2String (startDate ، format) ؛ String endDatester = dateUtil.date2String (enddate ، format) ؛ إذا كان (startDatester.equals (endDatester)) {// إذا كان وقت البدء مساوياً لوقت الانتهاء ، فهو في نفس قائمة اليوم. قائمة العودة } Date nextDate = dateUtil.getDayAfter (startDate ، format) ؛ String nextDatester = dateUtil.date2String (NextDate ، format) ؛ // string endDatester = dateUtil.date2String (enddate ، format) ؛ list.add (startDate) ؛ list.add (nextDate) ؛ بينما (! nextDateStestr.equals (endDatester)) {String nextNextDate = dateUtil.getSpecifiedDayAfter (NextDatester ، format) ؛ list.add (DateUtil.String2Date (NextDate ، format)) ؛ NextDatester = nextNextDate ؛ } قائمة الإرجاع ؛ } static void main (string [] args) يلقي الاستثناء { / ** / string predate = getSpecifiedDayBefore ("2016-05-01" ، "Yyyy-MM-DD") ؛ String nextDate = getSpecifiedDayAfter ("2016-05-03" ، "Yyyy-MM-DD") ؛ تاريخ befroday = getDayBefore (date new () ، "Yyyy-MM-DD") ؛ Date Dateafter = getDayAfter (New Date () ، "Yyyy-MM-DD") ؛ // system.out.println ("اليوم السابق:" + predate + "اليوم التالي:" + nextDate) ؛ // system.err.println ("اليوم السابق:" + Date2String (Befroday ، "Yyyy-MM-DD") + "// اليوم التالي:" + Dateafter) ؛ String MAT = "Yyyy-MM-DD" ؛ // من الأفضل قراءة SimpledateFormat من قاعدة البيانات DateTimeFormat = جديد SimplEdateFormat ؛ تاريخ dd = dateUtil.getDayBefore (date date () ، mat) ؛ // Date befroday = getDayBefore (date new () ، "Yyyy-MM-DD") ؛ String SD = Date2String (Befroday ، "Yyyy-MM-DD") ؛ سلسلة datestr = dateTimeFormat.format (befroday) ؛ // system.out.println ("datestr ="+datest+"sd"+sd) ؛ // list <Date> listDate = get2DatelistDate ("2016-05-01" ، "2016-05-03" ، "Yyyy-MM-DD") ؛ // LIST <TRING> listDatester = get2DatelistDatester ("2016-05-01" ، "2016-05-03" ، "Yyyy-MM-DD") ؛ Date StartDate = New Date () ؛ Date endDate = dateTimeFormat.Parse ("2016-05-31") ؛ قائمة <Cate> listDate = get2DatelistWithDate (startDate ، enddate ، "Yyyy-MM-DD") ؛ لـ (int i = 0 ؛ i <listdate.size () ؛ i ++) {system.err.println (listDate.get (i)) ؛ } /*for (int i = 0 ؛ i <listDatestr.size () ؛ i ++) {//system.out.println(listDatester.get(i)) ؛ }*/}ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون من المفيد للجميع تعلم برمجة Java.