رمز التنفيذ الأول:
استيراد java.text.simpleDateFormat ؛ import java.util.calendar ؛ import java.util.date ؛ فئة عامة datetestutil {public static void main (string [] args) rems {simpledateformat sdf = new simpledateFormatate ("yyyymmdd") ؛ String str = "20110823" ؛ تاريخ dt = sdf.parse (str) ؛ التقويم الأيمن = calendar.getInstance () ؛ RightNow.Settime (DT) ؛ RightNow.add (Calendar.year ، -1) ؛ // التاريخ ناقص 1 سنة RightNow.Add (Calendar.month ، 3) ؛ // Date Plus 3 أشهر RightNow.add (Calendar.day_of_year ، 10) سلسلة CONT = SDF.Format (DT1) ؛ system.out.println (crown) ؛ }}ملاحظة: في طريقة إضافة كائن التقويم ، فإن المعلمة الثانية هي رقم موجب يعني "إضافة" ، ورقم سالب يعني "الطرح".
الرمز 2: يزداد تاريخ Java ويطرح عدد الأيام
رمز فئة الاختبار:
استيراد java.text.simpledateformat ؛ استيراد java.util.date ؛ الفئة العامة datetest {public static void main (string [] arg) {date now = new date () ؛ addandsubtractDaySbygetTime (الآن ، -5) ؛ addandsubtractDaySbygetTime (الآن ، 5) ؛ addandsubtractDaySbycalendar (الآن ، -5) ؛ addandsubtractdaysbycalendar (الآن ، 5) ؛ } تاريخ الثابت العام addandsubtractDaysBygetTime (تاريخ DateTime/*المعلق تاريخ*/، int n/*أيام الإضافة والطرح*/) {// date format simpledateformat df = new SimpleTformat ("yyyy-mm-dd") ؛ SimpleDateFormat dd = new SimplEdateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ system.out.println (df.format (تاريخ جديد (dateTime.getTime () + n * 24 * 60 * 60 * 1000l))) ؛ //system.out.println(dd.format(new Date (dateTime.getTime () + n * 24 * 60 * 1000l))) ؛ // لاحظ أنه يجب عليك التحويل إلى نوع طويل هنا ، وإلا فإن التدفق المدى سيحدث عندما يتجاوز N 25 ، بحيث لا يمكنك الحصول على قيمة التاريخ المطلوبة تاريخ جديد (DateTime.getTime () + N * 24 * 60 * 1000L) ؛ } تاريخ الثابت العام addandsubtractDaysByCalendar (تاريخ DateTime/*المعلق تاريخ*/، int n/*أيام الطرح*/) {// تنسيق التاريخ simpletformat df = new SimpleTformat ("Yyyy-MM-DD") ؛ SimpleDateFormat dd = new SimplEdateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ java.util.calendar calstart = java.util.calendar.getInstance () ؛ Calstart.Settime (DateTime) ؛ calstart.add (java.util.calendar.day_of_week ، n) ؛ system.out.println (df.format (calstart.getTime ())) ؛ //system.out.println (dd.format (calstart.getTime ())) ؛ إرجاع calstart.getTime () ؛ }} نتائج التشغيل:
2014-10-06
2014-10-16
2014-10-06
2014-10-16
الرمز الثالث:
تحقق من المعلومات عبر الإنترنت وأضف بعض فئات الأدوات حول فئة التاريخ التي قمت بتلخيصها.
package com.data.Utils ؛ import java.text.simpleDateFormat ؛ import java.util.calendar ؛ import java.util.date ؛ public class dateformat { / *** كم عدد السنوات التي يتم تقليلها* / سلسلة ثابتة عامة dateminusyear (String str strows {simpledateformat sdf = new Simplate ؛ تاريخ dt = sdf.parse (str) ؛ التقويم الأيمن = calendar.getInstance () ؛ RightNow.Settime (DT) ؛ RightNow.add (Calendar.year ، -1) ؛ // التاريخ ناقص 1 سنة تاريخ dt1 = rightNow.getTime () ؛ سلسلة CONT = SDF.Format (DT1) ؛ العودة } / *** كم عدد السنوات التي يجب إضافتها حتى الآن* / السلسلة الثابتة العامة dateaddyear (String str) يرمي استثناء {simpledateformat sdf = new SimpledateFormat ("Yyyymm") ؛ تاريخ dt = sdf.parse (str) ؛ التقويم الأيمن = calendar.getInstance () ؛ RightNow.Settime (DT) ؛ RightNow.add (Calendar.year ، 1) ؛ // Date plus 1 year date dt1 = rightNow.getTime () ؛ سلسلة CONT = SDF.Format (DT1) ؛ العودة } / *** كم عدد الأشهر التي يقلل تاريخها* / السلسلة الثابتة العامة dateminusmonth (String str) استثناء {simpledateformat sdf = new SimpleDateFormat ("yyyymm") ؛ Date dt = sdf.parse (str) ؛ // إنشاء تقويم السلسلة rightNow = calendar.getInstance () ؛ RightNow.Settime (DT) ؛ // قم بتعيين وقت هذا التقويم باستخدام التاريخ المحدد. RightNow.add (Calendar.month ، -1) ؛ // التاريخ ناقص 1 شهر DT1 = RightNow.getTime () ؛ // إرجاع كائن تاريخ يمثل قيمة وقت التقويم. string rive = sdf.format (dt1) ؛ // تنسيق التاريخ المعطى كسلسلة تاريخ/زمنية وأضف النتيجة إلى StringBuffer المحدد. العودة } / ** * كم عدد الأشهر التي يقوم بها تاريخ إضافة * / السلسلة الثابتة العامة dateaddmonth (String str) على استثناء {simpledateformat sdf = new SimpleDateFormat ("yyyymm") ؛ تاريخ dt = sdf.parse (str) ؛ التقويم الأيمن = calendar.getInstance () ؛ RightNow.Settime (DT) ؛ RightNow.add (Calendar.month ، 1) ؛ // إضافة 3 أشهر حتى الآن // rightnow.add (calendar.day_of_year ، 10) ؛ // التاريخ بالإضافة إلى 10 أيام تاريخ dt1 = rightnow.getTime () ؛ سلسلة CONT = SDF.Format (DT1) ؛ العودة } / ** * احصل على STR للشهر الأول من العام والشهر الحاليين * param str * 201505 * return 201501 * @throws استثناء * / سلسلة ثابتة عامة DateOnemonth (String str) {str.substring (0 ، str.length () - 2) ؛ str = str + "01" ؛ إرجاع شارع } /*** حساب عدد الأشهر التي يكون الشهر المحدد من يناير. * param str 201509 * return 9 */ public static int intistancemonth (string str) {int i = integer.parseint (str) ؛ int j = integer.parseint (dateFormat.DateOnemonth (str)) ؛ system.out.println (i - j) ؛ إرجاع I - J + 1 ؛ } / ** * احصل على الفرق بين الوقت بين مرتين ، دقيقة إلى milliseconds * param str * @return * / timeDifference static static (البداية الطويلة ، الطويل الطويل) {lond بين = end - start ؛ يوم طويل = بين / (24 * 60 * 60 * 1000) ؛ ساعة طويلة = (بين / (60 * 60 * 1000) - اليوم * 24) ؛ long min = ((بين / (60 * 1000)) - اليوم * 24 * 60 - ساعة * 60) ؛ طويل S = (بين / 1000 - اليوم * 24 * 60 * 60 - ساعة * 60 - دقيقة * 60) ؛ MS Long = (بين - اليوم * 24 * 60 * 60 * 1000 - الساعة * 60 * 60 * 60 * 1000 - MIN * 60 * 1000 - S * 1000) ؛ سلسلة timedifference = Day + "Day" + Hour + "Hour" + Min + "Minute" + S + "Seconds" + MS + "Milliseconds" ؛ إرجاع التوقيت المحدد ؛ }} / ** * احصل على وقت بدء 24 ساعة وأسبوع واحد وشهر واحد * * param timeInterval *: day_time_interval week_time_interval month_time_interval * @yyyy-mm-dd hh: mm: ss " * / public static string time (int timeIntance) SimpleDateFormat sdf = جديد simpledateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ if (day_time_interval == timeInterval) {// احصل على وقت البدء على مدار 24 ساعة cal.set (calendar.hour_of_day ، 0) ؛ cal.set (Calendar.minute ، 0) ؛ cal.set (Calendar.Second ، 0) ؛ String StartTime = sdf.format (cal.getTime ()) ؛ إرجاع وقت البدء ؛ } آخر إذا (week_time_interval == timeInterval) {int weekday = cal.get (calendar.day_of_week) - 1 ؛ Cal.Add (Calendar.Date ، -weekday) ؛ cal.set (calendar.hour_of_day ، 0) ؛ cal.set (Calendar.minute ، 0) ؛ cal.set (Calendar.Second ، 0) ؛ String StartTime = sdf.format (cal.getTime ()) ؛ إرجاع وقت البدء ؛ } آخر إذا (month_time_interval == timeInterval) {int dayofmonthmin = cal.getActualMinimum (calendar.day_of_month) ؛ // c.add (Calendar.date ، -dayofmonth) ؛ cal.set (Calendar.date ، dayofmonthmin) ؛ cal.set (calendar.hour_of_day ، 0) ؛ cal.set (Calendar.minute ، 0) ؛ cal.set (Calendar.Second ، 0) ؛ String StartTime = sdf.format (cal.getTime ()) ؛ إرجاع وقت البدء ؛ } إرجاع فارغ ؛ } / ** * احصل على وقت الانتهاء من 24 ساعة ، أسبوع واحد ، وشهر واحد * * param timeInterval *: day_time_interval week_time_interval month_time_interval * return "yyyy-mm-dd hh: mm: ss" * / public static stringtime (int timeinterval) {calendar cal = calendar. Cal.SettimeZone (TimeZone.gettimeZone ("GMT+8")) ؛ SimpleDateFormat sdf = جديد simpledateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ if (day_time_interval == timeInterval) {cal.set (calendar.hour_of_day ، 23) ؛ Cal.Set (12 ، 59) ؛ Cal.Set (13 ، 59) ؛ تاريخ طويل = cal.getTimeInMillis () ؛ سلسلة endtime = sdf.format (تاريخ جديد (تاريخ)) ؛ إرجاع الوقت. } آخر إذا (week_time_interval == timeInterval) {int weekday = cal.get (calendar.day_of_week) - 1 ؛ Cal.Add (Calendar.Date ، -weekday) ؛ Cal.Add (Calendar.Date ، 6) ؛ cal.set (Calendar.hour_of_day ، 23) ؛ Cal.Set (12 ، 59) ؛ Cal.Set (13 ، 59) ؛ تاريخ طويل = cal.getTimeInMillis () ؛ سلسلة endtime = sdf.format (تاريخ جديد (تاريخ)) ؛ إرجاع الوقت. } آخر إذا (month_time_interval == timeInterval) {int dayofmonthmax = cal.getActualMaximum (calendar.day_of_month) ؛ cal.set (Calendar.date ، dayofmonthmax) ؛ cal.set (Calendar.hour_of_day ، 23) ؛ Cal.Set (Calendar.Minute ، 59) ؛ Cal.Set (Calendar.Second ، 59) ؛ سلسلة endtime = sdf.format (cal.getTime ()) ؛ إرجاع الوقت. } إرجاع فارغ ؛ } /*** حدد ما إذا كان البيانات بين البدء والنهاية. يمكن أن يكون كل من البداية والنهاية لاغية yyyymmddhhmmss أو yyyymmdd format * * author you.xu * date 19 أغسطس ، 2015 في 3:11:46 pm * param datestr * param end * param * @return */ public static checkdal (shert start ، string end) تاريخ التاريخ = فارغ ؛ Date StartDate = null ؛ تاريخ enddate = null ؛ SimpleDateFormat SDF = NULL ؛ // تنسيق تاريخ القاضي if (14 == datestr.length ()) {sdf = new SimplEdateFormat ("YyyMMDDHHMMSS") ؛ } آخر if (8 == datest.length ()) {sdf = new SimplEdateFormat ("Yyyymmdd") ؛ } مرة أخرى عودة خطأ ؛ حاول {// تغيير تاريخ تنسيق تاريخ القاضي = sdf.parse (datest) ؛ } catch (parseException e) {log.error (e ، e) ؛ } if ((start == null) && (end! = null)) {try {endDate = sdf.parse (end) ؛ } catch (parseException ex1) {log.error (ex1 ، ex1) ؛ } if ((date! = null) && (enddate! = null)) // }} آخر إذا ((ابدأ! = null) && (end == null)) {try {startDate = sdf.parse (start) ؛ } catch (parseException ex1) {log.error (ex1 ، ex1) ؛ } if ((date! = null) && (startDate! = null)) {if (date.compareto (startDate)> = 0) isDateright = true ؛ }} آخر إذا ((ابدأ! = null) && (end! = null)) {try {startDate = sdf.parse (start) ؛ enddate = sdf.parse (end) ؛ } catch (parseException ex2) {system.out.println (ex2.ToString ()) ؛ } if ((startDate! = null) && (date! = null) && (enddate! = null)) {if ((date.compareto (startDate)> = 0) && (date.compareto (enddate) <= 0)) isDateright = true ؛ }} الإرجاع isDateright ؛ } / ** * لتحديد ما إذا كان البيانات بين البداية والنهاية ، يمكن أن يكون كل من البداية والنهاية في تنسيق طويل فارغ * * uuthor you.xu * date 19 أغسطس 2015 في 3:12:35 PM * param datestr * param start * param * @return * / public static checkdatev (سلسلة البيانات ، string end) تاريخ طويل = -1 ؛ طويل من = -1 ؛ TODATER Long = -1 ؛ Date = java.lang.long.parselong (datest) ؛ if ((start == null) && (end == null)) {isDateright = true ؛ } آخر if ((start == null) && (end! = null)) {try {toDate = java.lang.long.parselong (end) ؛ } catch (numberFormatexception nfe) {log.error (nfe ، nfe) ؛ } if (date <= todate) {isDateright = true ؛ }} آخر إذا ((ابدأ! = null) && (end == null)) {try {fromDate = java.lang.long.parselong (start) ؛ } catch (numberFormatexception nfe) {log.error (nfe ، nfe) ؛ } if (date> = fromDate) {isDateright = true ؛ }} آخر إذا ((ابدأ! = null) && (end! = null)) {try {toDate = java.lang.long.parselong (end) ؛ fromDate = java.lang.long.parselong (start) ؛ } catch (numberFormatexception nfe) {log.error (nfe ، nfe) ؛ } if ((date <= todate) && (date> = fromDate)) {isDateright = true ؛ }} الإرجاع isDateright ؛ }يتم استخدامها حتى الآن ، ويمكنك إضافتها في أي وقت. هناك أدوات زمنية بسيطة ومريحة. آمل أن أتعلم معك ، وسأشير إليهم في التعليقات. شكرًا! ! !