Dalam pengembangan proyek, tanggal adalah bagian yang sangat diperlukan dari kita. Artikel ini akan merangkum beberapa metode umum tentang tanggal dalam pengembangan kode untuk memfasilitasi penggunaan Anda nanti. Hidangan disajikan langsung di bawah:
paket com.example.util; impor java.text.parseexception; impor java.text.simpledateFormat; impor java.util.arraylist; impor java.util.calendar; impor java.util.date; impor java.util.list; / *** Metode Tanggal Umum** @Author**/ Kelas Publik DateUtils {/ *** Variabel Umum*/ Public Static Final String Date_Format_FULL = "yyyy-mm-dd hh: mm: ss"; string final public static date_format_ymd = "yyyy-mm-dd"; string final public static date_format_hms = "hh: mm: ss"; string final statis public date_format_hm = "hh: mm"; public static final string date_format_ymdhm = "yyyy-mm-dd hh: mm"; string final public static date_format_ymdhms = "yyyymmddhhmmss"; final public static long one_day_mills = 3600000 * 24; final public static int week_days = 7; private static final int datelength = date_format_ymdhm.length (); / ** * Konversi Tanggal ke Format String * * @param Time * @param format * @return */ public static String formatDateToString (waktu tanggal, format string) {SimpleDateFormat sdf = new SimpleDateFormat (format); return sdf.format (waktu); } / ** * Konversi string ke tanggal format * (Catatan: Ketika tanggal yang Anda masukkan adalah 2014-12-21 12:12, format yang sesuai harus yyyy-mm-dd hh: mm * sebaliknya, pengecualian akan dilemparkan) * @param date * @param format * @return * @throws Parseexception format @parate * @parat format * @param * @trows Parseexception {publicate * @parate @@parat * @trows Parseexception * SimpleDateFormat SDF = new SimpleDateFormat (format); coba {return sdf.parse (tanggal); } catch (parseException ex) {ex.printstacktrace (); Lempar RuntimeException baru (ex.tostring ()); }} / ** * Tentukan apakah tanggal termasuk dua periode * @param waktu * @param timeRange * @return * / public static boolean isTimeInrange (waktu tanggal, tanggal [] timeRange) {return (! Time.before (timeRange [0]) &&! Time.after (timerange [1]); } / ** * Waktu dari waktu lengkap ke menit * * @param fullDateStr * @return * / public static string getDateTominute (string fullDateStr) {return fullDateStr == null? null: (fullDateStr.length ()> = datelength? fullDateStr.substring (0, datelength): fullDateStr); } /*** Kembalikan semua minggu dari tahun yang ditentukan. Daftar berisi string [2] string objek [0] Tanggal mulai minggu ini, dan string [1] adalah tanggal akhir minggu ini. * Tanggal dalam format yyyy-mm-dd minggu pertama setiap tahun harus mencakup Senin dan menjadi tujuh hari lengkap. * Misalnya: Minggu pertama 2009 dimulai pada 2009-01-05 dan ujungnya pada 2009-01-11. Tahun berapa Senin? Lalu minggu apa yang termasuk dalam minggu ini? * For example: 2008-12-29 is Monday, 2009-01-04 is Sunday, so this week is the last week of 2008. * * @param year * Format YYYY , must be greater than 1900 and less than 9999* @return @ */ public static List<String[]> getWeeksByYear(final int year) { int weeks = getWeekNumOfYear(year); Daftar <string []> result = new ArrayList <String []> (Weeks); int start = 1; int end = 7; untuk (int i = 1; i <= minggu; i ++) {string [] tempWeek = string baru [2]; Tempweek [0] = getDateForDayOfWeek (tahun, i, mulai); Tempweek [1] = getDateForDayOfWeek (tahun, i, akhir); result.add (tempweek); } hasil pengembalian; } / ** * Hitung tahun dan minggu sebelumnya dari tahun dan minggu yang ditentukan * * @param tahun * @param minggu * @return @ * / public static int [] getLastyearWeek (int tahun, int minggu) {if (minggu <= 0) {lempar baru illegalArgumentException ("Angka mingguan tidak bisa lebih kecil dari 1 !!"); } int [] result = {minggu, tahun}; if (minggu == 1) {// hasil tahun sebelumnya [1] -= 1; // Hasil minggu lalu [0] = getWeeknumofyear (hasil [1]); } else {hasil [0] -= 1; } hasil pengembalian; } / ** * NEXT [minggu, tahun] * * @param tahun * @param minggu * @return @ * / public static int [] getnextyearweek (int tahun, int minggu) {if (minggu <= 0) {lempar baru ilegalargumentException ("Jumlah mingguan tidak boleh kurang dari 1 !!"); } int [] result = {minggu, tahun}; int minggu = getWeeknumofyear (tahun); if (minggu == minggu) {// Hasil tahun depan [1] += 1; // Hasil Minggu Pertama [0] = 1; } else {hasil [0] += 1; } hasil pengembalian; } /*** Hitung berapa minggu di tahun yang ditentukan. (dimulai pada hari Senin) * * @param tahun * @return @ */ public static int getWeeknumofyear (tahun int tahun) {return getWeeknumofyear (tahun, calendar.monday); } /*** Hitung berapa minggu di tahun yang ditentukan. * * @param tahun * yyyy * @return @ */ public static int getWeeknumofyear (tahun int, int firstdayofweek) {// Ada setidaknya 52 minggu setiap tahun, dan hingga 53 minggu. int minweeks = 52; int maxweeks = 53; Hasil int = Minweeks; int sindex = 4; Tanggal String = GetDateForDayOfWeek (Tahun, Maxweeks, FirstdayOfWeek); // Untuk menentukan apakah tahun cocok, jika cocok, itu berarti ada 53 minggu. if (date.substring (0, sindex) .equals (tahun)) {result = maxweeks; } hasil pengembalian; } public static int getWeeksOfWeekyear (tahun int tahun) {calendar cal = calendar.getInstance (); cal.setfirstdayofweek (calendar.monday); Cal.setMinimaldaySinFirstWeek (Week_days); Cal.set (Calendar.ear, tahun); return cal.getweeksinweekyear (); } / ** * Dapatkan tanggal yang sesuai dengan hari minggu dari tahun yang ditentukan yyyy-mm-dd (mulai dari Senin) * * @param tahun * @param weekofyear * @param dayofweek * @return yyyy-mm-dd pada format @ * / public static getDate forForAdayofweek (tahun int inton, inter-weekofyear @ * / public static getDate forForDayofweek (tahun int inton, weekofeoffyear @publicyar) Weekofyear, Dayofweek, Calendar.Monday); } /** * Get the date corresponding to the day of the week of the specified year yyyy-MM-dd, and specify the day of the week to calculate the first day of the week (firstDayOfWeek) * * @param year * @param weekOfYear * @param dayOfWeek * @param firstDayOfWeek * Specify the day of the week to calculate the first day of the week* @return yyyy-MM-dd Date in format */ string statis public getDateForDayOfWeek (int tahun, 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.ear, tahun); cal.set (calendar.week_of_year, weekofyear); return formatDateToString (cal.getTime (), date_format_ymd); } / ** * Dapatkan tanggal yang ditentukan dalam minggu ini * * @param datetime * @throws parseException * @ * / int static int getWeekofdate (string datetime) melempar parseException {calendar cal = calendar.getInstance (); cal.setfirstdayofweek (calendar.monday); Cal.setMinimaldaySinFirstWeek (Week_days); Tanggal tanggal = formatStringTodate (datetime, date_format_ymd); Cal.settime (tanggal); return cal.get (calendar.day_of_week); } /** * Calculate all dates in a certain week of a certain year (from Monday to the first day of the week) * * @param yearNum * @param weekNum * @return @ */ public static List<String> getWeekDays(int yearNum, int weekNum) { return getWeekDays(yearNum, weekNum, Calendar.MONDAY); } /** * Calculate all dates in a certain week of a certain year (seven days) * * @param yearNum * @param weekNum * @return yyyy-MM-dd format date list*/ public static List<String> getWeekDays(int year, int weekOfYear, int firstDayOfWeek) { List<String> dates = new ArrayList<String>(); int dayofweek = firstdayofweek; untuk (int i = 0; i <week_days; i ++) {Dates.add (getDateForDayOfWeek (tahun, mingguyear, dayofweek ++, firstdayofweek)); } Tanggal pengembalian; } / ** * Dapatkan informasi tahun dan minggu dari tanggal target untuk minggu sebelumnya, minggu ini, atau minggu depan * * @param queryDate * waktu yang akan datang * @param weekoffset * -1: Minggu lalu 0: Minggu ini 1: minggu depan * @param first -dayscepion * hari public * get hari pertama * @return * @hrows parseexcepion * hari ini adalah hari pertama / @return * @hrows parseexcepion * hari ini adalah hari pertama / @return * @hrows parseexcepion * hari ini adalah hari pertama / @return * @hrows parseexcepion * hari ini adalah hari pertama / @return * @hrows parseexcepion * hari ini WeekOffset, int firstdayofweek) melempar parseException {date date = formatStringTodate (queryDate, date_format_ymd); Kalender kalender = calendar.getInstance (); Calendar.Settime (tanggal); calendar.setFirstdayofweek (firstdayofweek); calendar.setMinimaldaySinFirstWeek (Week_days); int tahun = calendar.getWeekyear (); int minggu = calendar.get (calendar.week_of_year); int [] result = {minggu, tahun}; switch (WeekOffset) {case 1: hasil = getNextYearWeek (tahun, minggu); merusak; case -1: hasil = getLastyearweek (tahun, minggu); merusak; default: break; } hasil pengembalian; } / ** * Hitung jumlah hari selama dua hari * * @param startDate * string tanggal mulai * @param endDate * string tanggal akhir * @return * @throws ParseException * / public static int getdaysbetween (string startDate, string endDate) melempar 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 (start, end); } kembalikan Daygap; } private static int getdaysbetween (startDate tanggal, tanggal endDate) {return (int) ((endDate.getTime () - startDate.getTime ()) /one_day_mills); } / ** * Hitung perbedaan dalam jumlah hari antara dua tanggal * @param startDate * @param endDate * @return * / public static int getdaysgapofdates (startDate tanggal, tanggal endDate) {int date = 0; if (startDate! = null && endDate! = null) {date = getdaysbetween (startDate, endDate); } tanggal pengembalian; } / ** * Hitung kesenjangan tahun antara dua tanggal * * @param firstdate * @param secondate * @return * / public int static getYeargapofDates (tanggal FirstDate, tanggal secondate) {if (firstDate == null || secondate == null) {return 0; } Calendar helpCalendar = calendar.getInstance (); HelpCalendar.Settime (FirstDate); int firstyear = helpCalendar.get (calendar.year); HelpCalendar.Settime (SecondDate); int secondyear = helpCalendar.get (calendar.year); Return Secondyear - FirstYear; } / ** * Hitung kesenjangan bulan antara dua tanggal * * @param firstdate * @param secondate * @return * / public static int getMonthgapofdates (tanggal FirstDate, tanggal kedua) {if (firstDate == null || secondate == null) {return 0; } return (int) ((SecondDate.GetTime () - firstDate.getTime ()) / One_day_mills / 30); } / ** * Hitung apakah tanggal saat ini disertakan * * @param datys * @return * / public static boolean isContainCurrent (daftar <string> tanggal) {boolean flag = false; SimpleDateFormat fmt = new SimpleDateFormat (date_format_ymd); Tanggal Tanggal = Tanggal Baru (); String dateStr = fmt.format (date); untuk (int i = 0; i <tanggal.size (); i ++) {if (dateStr.equals (tanggal.get (i))) {flag = true; }} return flag; } / ** * Hitung tanggal ratu waktu dari tanggal * * @param date * @param waktu * @return * @throws parseException * / public static string getCalculatedateString (string startDate, int time) melempar parseException {string resultDate = null; if (startDate! = null && startDate.length ()> 0) {date date = formatStringTodate (startDate, date_format_ymd); Kalender c = calendar.getInstance (); C.SetTime (tanggal); C.Set (calendar.day_of_year, waktu); tanggal = c.gettime (); resultDate = formatDateToString (date, date_format_ymd); } return resultDate; } / ** * Dapatkan minggu dalam tahun ketika tanggal yang ditentukan dihitung dari tanggal tertentu * * @param Tanggal * @param AdmitDate * @return * @throws ParseException * @ * / public static int [] getYeRandWeeks (date string, string admitDate) melempar parseexception {calendargeK c = calendarge c = calendarge. C.SetTime (formatStringTodate (AdmitDate, date_format_ymd)); int time = c.get (calendar.day_of_week); return getWeekandyear (tanggal, 0, waktu); } / ** * Dapatkan Tanggal Tanggal yang Ditentukan, Semua Tanggal Minggu Ini Sebelum atau Setelah * @param Refdate * Tanggal Referensi * @param Weekoffset * -1: Minggu lalu 0: Minggu ini 1: Minggu depan * @param startDate * hari mana yang menghitung hari pertama * @return yyyyy-mm-dd date * @throws Parsexcepion hari * @return yyyyyy-mm-dd * @throws Parsexcepion Day @ * @return yyyyy-mm-dd date * @throws Parsexcepted DAYExcepion * REPDATE, INT WeekOffset, String StartDate) melempar ParseException {// startDate sebagai hari pertama dalam seminggu kalender c = calendar.getInstance (); c.settime (formatStringTodate (startDate, date_format_ymd)); int firstdayofweek = c.get (calendar.day_of_week); // Dapatkan minggu yang sesuai int [] weekandyear = getWeekandyear (Refdate, Weekoffset, FirstdayOfWeek); // Dapatkan semua tanggal dari pengembalian minggu yang sesuai GetWeekdays (Weekandyear [1], Weekandyear [0], FirstdayOfWeek); } / ** * Dapatkan interval waktu sesuai dengan titik waktu * * @param jam * @return * / Daftar statis publik <string []> getTimePointSbyHour (int [] jam) {daftar <string []> hourpoints = new ArrayList <string []> (); String sBStart = ": 00: 00"; String sBend = ": 59: 59"; untuk (int i = 0; i <jam.length; i ++) {string [] kali = string baru [2]; kali [0] = jam [i] + SBStart; kali [1] = (jam [(i + 1 + jam. Panjang) % jam. Panjang] - 1) + SBend; hourpoints.add (waktu); } return hourpoints; } / ** * Tingkatkan atau kurangi jumlah hari sesuai dengan tanggal yang ditentukan * * @param Tanggal * @param Jumlah * @return * / Tanggal Statis Publik AddDays (Tanggal Tanggal, Jumlah Int) {Return Add (Tanggal, Calendar.day_of_month, Jumlah); } / ** * Tingkatkan atau kurangi angka sesuai dengan tanggal yang ditentukan, ketik * * @param tanggal * @param calendarfield * @param Jumlah * @return * / public static Date add (tanggal tanggal, intalendarfield, jumlah int) {if (date == null) {throw IllegalArgumentException ("Tanggal bukan tendangan } Calendar c = calendar.getInstance (); C.SetTime (tanggal); c.add (Calendarfield, Jumlah); return c.getTime (); } / ** * Dapatkan waktu tanggal maksimum dari tanggal saat ini 2014-12-21 23:59:59 * @return * / Tanggal statis publik getCurdateWithMaxTime () {Calendar C = Calendar.getInstance (); C.Set (calendar.hour_of_day, 23); C.Set (Calendar.minute, 59); C.Set (Calendar.Second, 59); return c.getTime (); } / ** * Dapatkan waktu tanggal minimum dari tanggal saat ini2014-12-21 00:00:00 * @return * / Tanggal statis publik 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); return c.getTime (); }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.