Kode Implementasi Satu:
impor java.text.simpledateFormat; impor java.util.calendar; import java.util.date; kelas publik datetestil {public static void main (string [] args) melempar pengecualian {SimpledateFormat sdf = new SimpledateFormat ("yyyymmdd"); String str = "20110823"; Tanggal dt = sdf.parse (str); Calendar rightNow = calendar.getInstance (); rightnow.settime (DT); rightnow.add (calendar.year, -1); // tanggal minus 1 tahun rightnow.add (calendar.month, 3); // tanggal ditambah 3 bulan rightnow.add (calendar.day_of_year, 10); // tanggal ditambah tanggal 10 hari dt1 = rightnow.getTime (); String string = sdf.format (dt1); System.out.println (restr); }}Catatan: Dalam metode tambah objek kalender, parameter kedua adalah angka positif yang berarti "tambahkan", dan angka negatif yang berarti "pengurangan".
Kode 2: Tanggal Java menambah dan mengurangi jumlah hari
Kode kelas tes:
impor java.text.simpledateFormat; impor java.util.date; kelas publik datetest {public static void main (string [] arg) {date now = new date (); AddAndSubtractdaysByGetTime (sekarang, -5); addandsubtractdaysbygettime (sekarang, 5); addandsubtractdaysbycalendar (sekarang, -5); addandsubtractdaysbycalendar (sekarang, 5); } Tanggal statis public addandsubtractdaysbygetTime (tanggal datetime/*Tanggal tertunda*/, int n/*penambahan dan pengurangan hari*/) {// format tanggal SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); SimpleDateFormat dd = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); System.out.println (df.format (tanggal baru (datetime.getTime () + n * 24 * 60 * 60 * 1000l)))); //System.out.println(dd.format(new Date (datetime.getTime () + n * 24 * 60 * 60 * 1000l))); // Perhatikan bahwa Anda harus mengonversi ke tipe panjang di sini, jika tidak, rentang overflow akan terjadi ketika N melebihi 25, sehingga Anda tidak bisa mendapatkan tanggal pengembalian nilai tanggal yang diinginkan (datetime.getTime () + n * 24 * 60 * 60 * 1000L); } Tanggal statis public addandsubtractdaysbycalendar (tanggal datetime/*Tanggal tertunda*/, int n/*hari tambahan dan pengurangan*/) {// format tanggal SimpleDateFormat df = new SimpleDateFormat ("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 ())); return calstart.getTime (); }} Hasil Menjalankan:
2014-10-06
2014-10-16
2014-10-06
2014-10-16
Kode Tiga:
Periksa informasi secara online dan tambahkan beberapa kelas alat tentang kelas tanggal yang telah Anda ringkas.
Paket com.data.utils; import java.text.simpledateFormat; impor java.util.calendar; import java.util.date; date -format kelas publik { / *** berapa tahun yang dikurangi* / public static string dateminusyear (string str) lemparan {simplateFaMm) SimplateFate louchat ("needFATEFEDEFATEDEPATION" LOVEDEPATION "SUMBLEFAT" LOVERIM SUMBLEATIME ("NEWLEFEDEPATED (" NEWLEPATED ("SUMPLEATED" LOVEDEPATION "LOVEDEPATION" LOVEDEPATION "LOVEDEPATION (" PUBLIK PUBLIK = "string string string {string string (string str) Tanggal dt = sdf.parse (str); Calendar rightNow = calendar.getInstance (); rightnow.settime (DT); rightnow.add (calendar.year, -1); // tanggal minus 1 tahun tanggal dt1 = rightnow.getTime (); String string = sdf.format (dt1); pengembalian batas; } / *** Berapa tahun untuk ditambahkan hingga tanggal* / string statis public dataddyear (string str) melempar Exception {SimpleDateFormat sdf = new SimpleDateFormat ("yyyymm"); Tanggal dt = sdf.parse (str); Calendar rightNow = calendar.getInstance (); rightnow.settime (DT); rightnow.add (calendar.ear, 1); // tanggal ditambah tanggal 1 tahun dt1 = rightnow.getTime (); String string = sdf.format (dt1); pengembalian batas; } / *** Berapa bulan tanggal mengurangi* / string statis public dateminusmonth (string str) melempar Exception {SimpleDateFormat SDF = new SimpleDateFormat ("yyyymm"); Tanggal dt = sdf.parse (str); // menghasilkan string calendar rightNow = calendar.getInstance (); rightnow.settime (dt); // atur waktu kalender ini menggunakan tanggal yang diberikan. rightnow.add (calendar.month, -1); // tanggal dikurangi tanggal 1 bulan dt1 = rightNow.getTime (); // Mengembalikan objek tanggal yang mewakili nilai waktu kalender. String string = sdf.format (dt1); // format tanggal yang diberikan sebagai string tanggal/waktu dan tambahkan hasilnya ke StringBuffer yang diberikan. pengembalian batas; } / ** * Berapa bulan Tanggal menambahkan * / string statis public dateaddmonth (string str) melempar Exception {SimpleDateFormat sdf = new SimpleDateFormat ("yyyymm"); Tanggal dt = sdf.parse (str); Calendar rightNow = calendar.getInstance (); rightnow.settime (DT); rightnow.add (calendar.month, 1); // Tambahkan 3 bulan hingga tanggal // rightnow.add (calendar.day_of_year, 10); // tanggal ditambah 10 hari tanggal dt1 = rightnow.getTime (); String string = sdf.format (dt1); pengembalian batas; } / ** * Dapatkan STR untuk bulan pertama tahun dan bulan saat ini * @param str * 201505 * @return 201501 * @throws Exception * / Public Static String DateOnemonth (String str) {str = str.substring (0, str.length () - 2); str = str + "01"; mengembalikan str; } /*** Hitung berapa bulan bulan yang dipilih dari Januari. * @param str 201509 * @return 9 */ public static int dateTancemonth (string str) {int i = integer.parseint (str); int j = integer.parseint (dateFormat.dateOnemonth (str)); System.out.println (i - j); return i - j + 1; } / ** * Dapatkan perbedaan waktu antara dua kali, akurat untuk milidetik * @param str * @return * / public static string timeDiference (Long Start, Long End) {long antar = end - start; hari panjang = antara / (24 * 60 * 60 * 1000); jam panjang = (antara / (60 * 60 * 1000) - hari * 24); long min = ((antara / (60 * 1000)) - hari * 24 * 60 - jam * 60); long s = (antara / 1000 - hari * 24 * 60 * 60 - jam * 60 - min * 60); long ms = (antara - hari * 24 * 60 * 60 * 1000 - jam * 60 * 60 * 60 * 1000 - min * 60 * 1000 - S * 1000); String timeDifference = day + "day" + hour + "hour" + min + "menit" + s + "detik" + ms + "milidetik"; Return Timedifference; }} / ** * Dapatkan waktu mulai 24 jam, satu minggu, dan satu bulan * * @param TimeInterval *: day_time_interval minggu_time_interval bulan_time_interval * @return "yyyy-mm-dd hh: mm: ss" * / public static string getSartTime (int timeInterval) {calende (ss calend (calendget Public getStartTime (int timeInterval) {calEndar (calendget (calendget Publ SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); if (day_time_interval == TimeInterval) {// Dapatkan waktu mulai 24 jam Cal.set (calendar.hour_of_day, 0); Cal.set (Calendar.minute, 0); Cal.set (Calendar.Second, 0); String startTime = sdf.format (cal.getTime ()); kembali starttime; } else if (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 ()); kembali starttime; } else if (month_time_interval == timeInterval) {int dayofmonthmin = cal.getActualMinimum (calendar.day_of_month); // c.add (calendar.date, -dayofonth); 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 ()); kembali starttime; } return null; } /** * Get the end time of 24 hours, one week, and one month* * @param timeInterval * : DAY_TIME_INTERVAL WEEK_TIME_INTERVAL MONTH_TIME_INTERVAL * @return "yyyy-mm-dd hh:mm:ss" */ public static String getEndTime(int timeInterval) { Calendar cal = Calendar.getInstance(); cal.settimezone (timezone.gettimezone ("GMT+8")); SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); if (day_time_interval == TimeInerval) {cal.set (calendar.hour_of_day, 23); Cal.set (12, 59); Cal.set (13, 59); tanggal panjang = cal.getTimeInmillis (); String endtime = sdf.format (tanggal baru (tanggal)); Kembalikan waktu akhir; } else if (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); tanggal panjang = cal.getTimeInmillis (); String endtime = sdf.format (tanggal baru (tanggal)); Kembalikan waktu akhir; } else if (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); String endtime = sdf.format (cal.getTime ()); Kembalikan waktu akhir; } return null; } /*** Tentukan apakah DataStr adalah antara awal dan akhir. Baik Mulai dan Akhir dapat menjadi null yyyymmddhhmmss atau format yyyymmdd * * @author you.xu * @Date 19 Agustus 2015 at Tanggal Tanggal = NULL; StartDate tanggal = null; Tanggal EndDate = NULL; SimpleDateFormat SDF = NULL; // format tanggal juri if (14 == distestr.length ()) {sdf = new SimpleDateFormat ("yyymmddhhmmss"); } else if (8 == dateStr.length ()) {sdf = new SimpleDateFormat ("yyyymmdd"); } lain mengembalikan false; coba {// ubah tanggal format tanggal juri = sdf.parse (dATestr); } catch (parseException e) {log.error (e, e); } if ((start == null) && (end! = null)) {coba {endDate = sdf.parse (end); } catch (parseException ex1) {log.error (ex1, ex1); } if ((date! = null) && (endDate! = null)) // periksa parameter untuk {if (date.comppareto (endDate) <= 0) isDateright = true; }} lain if ((start! = null) && (end == null)) {coba {startDate = sdf.parse (start); } catch (parseException ex1) {log.error (ex1, ex1); } if ((date! = null) && (startDate! = null)) {if (date.compareto (startDate)> = 0) isDateright = true; }} lain if ((start! = null) && (end! = null)) {coba {startDate = sdf.parse (start); endDate = sdf.parse (akhir); } 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; }} return isDateright; } /** * To determine whether dateStr is between start and end, both start and end can be in null long format* * @author you.xu * @date August 19, 2015 at 3:12:35 pm * @param dateStr * @param start * @param end * @return */ public static boolean checkDateV(String dateStr, String start, String end) { boolean isDateRight = false; Tanggal Panjang = -1; Long FromDate = -1; long todate = -1; tanggal = java.lang.long.parselong (dateStr); if ((start == null) && (end == null)) {isDateright = true; } else if ((start == null) && (end! = null)) {coba {todate = java.lang.long.parselong (end); } catch (numberFormateException nfe) {log.error (nfe, nfe); } if (date <= todate) {isDateright = true; }} lain if ((start! = null) && (end == null)) {coba {fromDate = java.lang.long.parselong (start); } catch (numberFormateException nfe) {log.error (nfe, nfe); } if (date> = fromDate) {isDateright = true; }} lain if ((start! = null) && (end! = null)) {coba {todate = java.lang.long.parselong (end); FromDate = java.lang.long.parselong (mulai); } catch (numberFormateException nfe) {log.error (nfe, nfe); } if ((date <= todate) && (date> = fromDate)) {isDateright = true; }} return isDateright; }Ini digunakan sejauh ini, dan Anda dapat menambahkannya kapan saja. Ada alat waktu yang sederhana dan nyaman. Saya berharap untuk belajar dengan Anda, dan saya akan menunjukkannya di komentar. Terima kasih! Lai Lai