في تطوير المشروع ، تعد التواريخ جزءًا لا غنى عنه منا. ستلخص هذه المقالة بعض الطرق الشائعة حول تواريخ تطوير الكود لتسهيل استخدامك لاحقًا. يتم تقديم الأطباق مباشرة أدناه:
حزمة com.example.util ؛ استيراد java.text.parseException ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.arraylist ؛ استيراد java.util.calendar ؛ استيراد java.util.date ؛ استيراد java.util.list ؛ / *** طرق التاريخ المشترك** Author**/ Class Public Class DateUtils {/ *** المتغيرات الشائعة*/ السلسلة النهائية الثابتة العامة Date_Format_Full = "Yyyy-MM-DD HH: MM: SS" ؛ السلسلة النهائية الثابتة العامة Date_format_ymd = "Yyyy-MM-DD" ؛ السلسلة النهائية الثابتة العامة Date_format_hms = "HH: MM: SS" ؛ السلسلة النهائية الثابتة العامة date_format_hm = "hh: mm" ؛ السلسلة النهائية الثابتة العامة Date_format_ymdhm = "Yyyy-MM-DD HH: MM" ؛ السلسلة النهائية الثابتة العامة date_format_ymdhms = "Yyyymmddhhmmss" ؛ استاتيكي عام طويل طويل One_day_mills = 3600000 * 24 ؛ استاتيكي عام int week_days = 7 ؛ ثابت خاص int dateLength = date_format_ymdhm.length () ؛ / ** * تحويل التاريخ إلى سلسلة التنسيق * * param time * param format * return */ public static string formatdateToString (وقت التاريخ ، تنسيق السلسلة) {simpledateformat sdf = new simpledateFormat (تنسيق) ؛ إرجاع sdf.format (الوقت) ؛ } / ** * قم بتحويل السلسلة إلى تاريخ التنسيق * (ملاحظة: عندما يكون التاريخ الذي أدخلته هو 2014-12-21 12:12 ، يجب أن يكون التنسيق المقابل هو yyyy-mm-dd hh: mm * خلاف ذلك ، سيتم طرح الاستثناء) * @param format * reghrows * throws parseexception * / @public static static. SimplEdateFormat SDF = جديد spileDateFormat (تنسيق) ؛ حاول {return sdf.parse (date) ؛ } catch (parseException ex) {ex.printStackTrace () ؛ رمي new RunTimeException (ex.toString ()) ؛ }} / ** * تحديد ما إذا كان التاريخ ينتمي إلى فترتين * param time * param timerange * @return * / public static boolean isTimeInrange (تاريخ التاريخ ، التاريخ [] timerange) {return (! time.fore (timerange [0]) &&! } / ** * الوقت من الوقت الكامل إلى الدقيقة * * param fullDatestr * return * / السلسلة الثابتة العامة getDateTominute (سلسلة fullDatester) {return fullDatestr == Null؟ NULL: (FullDatestr.length ()> = DateLength؟ FullDatestr.subString (0 ، DateLength): FullDatester) ؛ } /*** إرجاع جميع أسابيع السنة المحددة. تحتوي القائمة على سلسلة الكائنات [2] تاريخ بدء الأسبوع ، و string [1] هو تاريخ نهاية الأسبوع. * التاريخ بتنسيق yyyy-mm-dd يجب أن يشمل الأسبوع الأول من كل عام الاثنين وأن يكون سبعة أيام كاملة. * على سبيل المثال: يبدأ الأسبوع الأول من عام 2009 في 2009-01-05 والنهايات في 2009-01-11. في أي سنة الاثنين؟ ثم ما هو الأسبوع المدرج في هذا الأسبوع؟ * على سبيل المثال: 2008-12-29 هو الاثنين ، 2009-01-04 يوم الأحد ، لذلك هذا الأسبوع هو الأسبوع الأخير من عام 2008. * * param year * format yyyy ، يجب أن يكون أكبر من 1900 وأقل من 9999 * @return @ */ public static static <s string []> getWeeksbyyear (Final int year) {int weeks = قائمة <Tring []> result = new ArrayList <string []> (Weeks) ؛ int start = 1 ؛ int end = 7 ؛ لـ (int i = 1 ؛ i <= weeks ؛ i ++) {string [] tempweek = new string [2] ؛ Tempweek [0] = getDateffordayofweek (السنة ، i ، start) ؛ Tempweek [1] = getDatefordayofweek (السنة ، i ، end) ؛ النتيجة. add (tempweek) ؛ } نتيجة الإرجاع ؛ } / ** * احسب العام السابق وأسبوع السنة المحددة والأسبوع * * param السنة * param week * @ * / public static int [] getLastyearweek (int year ، int week) {if (week <= 0) {throw new alualalarmentexception ("العدد الأسبوعي لا يمكن أن يكون أقل من 1 !!") ؛ } int [] result = {week ، year} ؛ if (الأسبوع == 1) {// نتيجة العام السابق [1] -= 1 ؛ // نتيجة الأسبوع الماضي [0] = getWeeknumofyear (النتيجة [1]) ؛ } آخر {result [0] -= 1 ؛ } نتيجة الإرجاع ؛ } / ** * التالي [الأسبوع ، السنة] * * param السنة * param week * @return @ * / public static int [] getNextyearWeek (int year ، int week) {if (week <= 0) {throw new inchlugalumentException ("الرقم الأسبوعي لا يمكن أن يكون أقل من 1 !!") ؛ } int [] result = {week ، year} ؛ int weeks = getweeknumofyear (year) ؛ إذا (الأسبوع == أسابيع) {// النتيجة العام المقبل [1] += 1 ؛ // نتيجة الأسبوع الأول [0] = 1 ؛ } آخر {result [0] += 1 ؛ } نتيجة الإرجاع ؛ } /*** حساب عدد الأسابيع الموجودة في سنة محددة. (يبدأ يوم الاثنين) * * param year * @return @ */ public static int getWeeknumofyear (Final int year) {return getWeeknumofyear (year ، calendar.monday) ؛ } /*** حساب عدد الأسابيع الموجودة في سنة محددة. * * param year * yyyy * @return @ */ public static int getweeknumofyear (int year final ، int firstdayofweek) {// هناك 52 أسبوعًا على الأقل كل عام ، وما يصل إلى 53 أسبوعًا. int minweeks = 52 ؛ int maxweeks = 53 ؛ النتيجة int = minweeks ؛ int sindex = 4 ؛ تاريخ السلسلة = getDateffordayofweek (السنة ، maxweeks ، firstdayofweek) ؛ // لتحديد ما إذا كان العام يتطابق ، إذا كان يتطابق ، فهذا يعني أن هناك 53 أسبوعًا. if (date.substring (0 ، sindex) .equals (year)) {result = maxweeks ؛ } نتيجة الإرجاع ؛ } static int getWeeksofWeeKyear (Final int year) {calendar cal = calendar.getInstance () ؛ cal.setfirstdayofweek (calendar.monday) ؛ Cal.SetMinimaldaysInfirstweek (week_days) ؛ Cal.Set (Calendar.year ، year) ؛ return cal.getweeksinweekyear () ؛ } / ** * احصل على التاريخ المقابل ليوم الأسبوع من السنة المحددة yyyy-mm-dd (ابتداءً من الاثنين) * * param السنة * param weekofyear * param dayofweek * return yyyy-mm-dd dd indafford @intdateford getDatefordayofweek (int year ، weekofyear ، dayofweek ، calendar.monday) ؛ } /** * احصل على التاريخ المقابل ليوم الأسبوع من السنة المحددة yyyy-mm-dd ، وحدد يوم الأسبوع لحساب اليوم الأول من الأسبوع (FirstDayofweek) * Format */ public Static String getDatefordayofweek (int year ، int weekofyear ، int dayofweek ، int firstdayofweek) {calendar cal = calendar.getInstance () ؛ cal.setfirstdayofweek (firstdayofweek) ؛ cal.set (Calendar.day_of_week ، dayofweek) ؛ Cal.SetMinimaldaysInfirstweek (week_days) ؛ Cal.Set (Calendar.year ، year) ؛ cal.set (calendar.week_of_year ، weekofyear) ؛ return formatdatetoString (cal.gettime () ، date_format_ymd) ؛ } / ** * احصل على تاريخ الأسبوع المحدد * * param dateTime * throws parseException * @ * / public static int getWeekofDate (سلسلة dateTime) يلقي parseException {calendar cal = calendar.getInstance () ؛ cal.setfirstdayofweek (calendar.monday) ؛ Cal.SetMinimaldaysInfirstweek (week_days) ؛ تاريخ التاريخ = FormatStringTodate (DateTime ، date_format_ymd) ؛ Cal.Settime (التاريخ) ؛ إرجاع cal.get (Calendar.day_of_week) ؛ } / ** * احسب جميع التواريخ في أسبوع معين من سنة معينة (من الاثنين إلى اليوم الأول من الأسبوع) * * param reglnum * param weeknum * return @ * / public static list <string> getWeekDays (int enlnum ، int weeknum) {return getWeekdays (healnum ، malenum ، calend.monday) ؛ } / ** * احسب جميع التواريخ في أسبوع معين من سنة معينة (سبعة أيام) * * param reglnum * param weeknum * @regurn yyyy-mm dd list * / public static list <string> getWeekDays (int year ، int weekofyear ، int firstdayofweek) {list <string> dates = new arraylist <arraylist <) int dayofweek = firstdayofweek ؛ لـ (int i = 0 ؛ i <week_days ؛ i ++) {dates.add (getDatfordayofWeek (year ، weekofyear ، dayofweek ++ ، firstdayofweek)) ؛ } تواريخ العودة ؛ } / ** * احصل على معلومات السنة والأسبوع عن التاريخ المستهدف للأسبوع السابق ، هذا الأسبوع ، أو الأسبوع المقبل * * * param querydate * الوقت الوارد * param weekoffset * -1: الأسبوع الماضي: هذا الأسبوع 1: الأسبوع القادم * param firstdayofweek * أي يوم من اليوم هو اليوم الأول * @throws parsexection * / public. WeekOffset ، int firstdayofweek) يلقي parseException {date date = formatStringTodate (QueryDate ، date_format_ymd) ؛ التقويم التقويم = calendar.getInstance () ؛ Calendar.Settime (التاريخ) ؛ Calendar.SetFirstdayOfweek (Firstdayofweek) ؛ Calendar.setMinimaldaysInfirstweek (week_days) ؛ int year = calendar.getWeekyear () ؛ int week = calendar.get (calendar.week_of_year) ؛ int [] result = {week ، year} ؛ Switch (weekoffset) {case 1: result = getNextyearweek (year ، week) ؛ استراحة؛ الحالة -1: النتيجة = getLastyearweek (السنة ، الأسبوع) ؛ استراحة؛ الافتراضي: استراحة ؛ } نتيجة الإرجاع ؛ } / ** * احسب عدد الأيام لمدة يومين * * param startDate * سلسلة تاريخ البدء * param enddate * end date string * return * throws parseException * / public static int getDaySbetween (String startDate ، string enddate) parseException {int daygap = 0 ؛ if (startDate! = null && startDate.length ()> 0 && enddate! = null && enddate.length ()> 0) {date end = formatStringTodate (enddate ، date_format_ymd) ؛ Date Start = FormatStringTodate (startDate ، date_format_ymd) ؛ daygap = getDaySbetween (ابدأ ، نهاية) ؛ } إرجاع Daygap ؛ } private static int getDaySbetween (date startDate ، date enddate) {return (int) ((enddate.getTime () - startDate.getTime ()) /One_day_mills) ؛ } / ** * احسب الفرق في عدد الأيام بين تواريخين * param startDate * param enddate * @return * / public static int getDaySgapofDates (date startDate ، datedate) {int date = 0 ؛ if (startDate! = null && enddate! = null) {date = getDaySbetween (startDate ، endDate) ؛ } تاريخ العودة ؛ } / ** * احسب فجوة السنة بين تواريخين * * param firstdate * param secondDate * @REGTURN * / public static int getyeargapofdates (Date FirstDate ، Date SecondDate) {if (firstDate == null || secondDate == null) {return 0 ؛ } التقويم helpcalendar = calendar.getInstance () ؛ HelpCalendar.Settime (FirstDate) ؛ int firstyear = helpcalendar.get (calendar.year) ؛ HelpCalendar.Settime (SecondDate) ؛ int secondyear = helpcalendar.get (calendar.year) ؛ العودة secondyear - firstyear ؛ } / ** * حساب فجوة الشهر بين تواريخين * * param firstdate * param secondDate * @REGTURN * / public static int getMonthGapofDates (Date FirstDate ، Date SecondDate) {if (firstDate == null || secondDate == null) {return 0 ؛ } return (int) ((SecondDate.getTime () - firstDate.getTime ()) / One_day_mills / 30) ؛ } / ** * احسب ما إذا كان التاريخ الحالي مدرجًا * * param datys * return * / public static boolean isContainCurrent (قائمة <string> تواريخ) {boolean flag = false ؛ SimplEdateFormat fmt = new SimplEdateFormat (date_format_ymd) ؛ تاريخ تاريخ = تاريخ جديد () ؛ سلسلة datestr = fmt.format (التاريخ) ؛ لـ (int i = 0 ؛ i <dates.size () ؛ i ++) {if (datest.equals (dates.get (i))) {flag = true ؛ }} علامة الإرجاع ؛ } / ** * احسب تاريخ ملكة الوقت من التاريخ * * param التاريخ * param time * return * throws parseException * / سلسلة ثابتة عامة getCalcalucedateToString (String startDate ، int time) يلقي parseException {String resultDate = null ؛ if (startDate! = null && startDate.length ()> 0) {date date = formatStringTodate (startDate ، date_format_ymd) ؛ التقويم c = calendar.getInstance () ؛ C.Settime (التاريخ) ؛ C.Set (Calendar.day_of_year ، time) ؛ التاريخ = c.getTime () ؛ resultDate = formatDatetoString (Date ، date_format_ymd) ؛ } return resultdate ؛ } / ** * احصل على الأسبوع من السنة التي يتم فيها حساب التاريخ المحدد من تاريخ معين * * param date * param armitdate * reghurn * throws parseException * @ * / public static int [] getyearandweeks (تاريخ السلسلة ، السلسلة) يلقي parseException {calendar C.Settime (FormatStringTodate (Admitdate ، date_format_ymd)) ؛ int time = c.get (calendar.day_of_week) ؛ إرجاع getWeekandyear (التاريخ ، 0 ، الوقت) ؛ ستر refdate ، int weekoffset ، string startDate) يلقي parseException {// startDate باعتباره اليوم الأول من التقويم الأسبوع c = calendar.getInstance () ؛ C.Settime (FormatStringTodate (startDate ، date_format_ymd)) ؛ int firstdayofweek = c.get (calendar.day_of_week) ؛ // احصل على الأسبوع المقابل int [] weekandyear = getWeekandyear (refdate ، weekoffset ، firstdayofweek) ؛ // احصل على جميع تواريخ الأسبوع المقابل GetWeekDays (Weekandyear [1] ، Weekandyear [0] ، FirstDayOfWeek) ؛ } / ** * احصل على الفاصل الزمني وفقًا للنقطة الزمنية * * param ساعات * @return * / قائمة ثابتة عامة <string []> getTimePointsByhour (int [] ساعات) {list <string []> ساعة artipoints = new ArrayList <string []> () ؛ String sbstart = ": 00: 00" ؛ String Sbend = ": 59: 59" ؛ لـ (int i = 0 ؛ i <ساعات. مرات [0] = ساعات [i] + sbstart ؛ مرات [1] = (ساعات [(i + 1 + ساعات. Hourpoints.add (Times) ؛ } نقاط ساعة الإرجاع ؛ } / ** * زيادة أو انخفاض عدد الأيام وفقًا للتاريخ المحدد * * param Date * param المبلغ * @RETURN * / الإضافات الثابتة العامة (تاريخ التاريخ ، مبلغ int) {الإرجاع (التاريخ ، calendar.day_of_month ، المبلغ) ؛ } / ** * زيادة أو انخفاض الرقم وفقًا للتاريخ المحدد ، اكتب * * param تاريخ * param calendarfield * param المبلغ * regurn * / تاريخ الثابت العام إضافة (تاريخ التاريخ ، int calendarfield ، int int) {if (date == null) } Calendar c = calendar.getInstance () ؛ C.Settime (التاريخ) ؛ C.Add (Calendarfield ، المبلغ) ؛ إرجاع C.GetTime () ؛ } / ** * احصل على الحد الأقصى لوقت التاريخ الحالي للتاريخ الحالي 2014-12-21 23:59:59 * return * / Date static date getCurdateWithMaxTime () {calendar c = calendar.getinstance () ؛ C.Set (Calendar.hour_of_day ، 23) ؛ C.Set (Calendar.minute ، 59) ؛ C.Set (Calendar.Second ، 59) ؛ إرجاع C.GetTime () ؛ } / ** * احصل على الحد الأدنى لوقت التاريخ الحالي لـ Date2014-12-21 00:00:00 * return * / Date static date getCurdateWithMintime () {calendar c = calendar.getinstance () ؛ C.Set (Calendar.hour_of_day ، 0) ؛ C.Set (Calendar.minute ، 0) ؛ C.Set (Calendar.Second ، 0) ؛ C.Set (Calendar.millisecond ، 0) ؛ إرجاع C.GetTime () ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.