Artikel ini terutama dibagi menjadi dua bagian untuk pemrosesan tanggal. Berikut adalah pengantar terperinci untuk itu.
Bagian 1: Dasar -dasar Pemrosesan Tanggal
Fungsi Kelas Tanggal <BR />: Fungsi utama adalah untuk mendapatkan waktu saat ini dan mengonversi tanggal menjadi format standar
Tanggal Tanggal = Tanggal Baru (); SimpleDateFormat SDF = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); string str = sdf.format (tanggal); System.out.println ("2015-10-16 14:59:52"); Konversi string ke jenis tanggal
String Day = "2014-6-5 10:30:30"; SimpleDateFormat d2 = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); tanggal tanggal2 = d2.parse (hari); System.out.println ("Thu Jun 05 10:30:30 CST 2014"); Aplikasi Kelas Kalender
Kelas java.util.calendar adalah kelas abstrak. Anda bisa mendapatkan objek kalender dengan memanggil metode statis getInstance (). Objek ini telah diinisialisasi dengan tanggal dan waktu saat ini, yaitu, mewakili waktu saat ini secara default.
Calendar C = Calendar.getInstance (); int tahun = c.get (calender.year); int bulan = c.get (calender.month) +1; // Dapatkan bulan, 0 berarti Januari int hari = c.get (calender.day_of_month); int hour = c.get (calender.hour_of_day); int menit = c.get (calender.minute); int kedua = c.get (calender.second);
Bandingkan 2 bulan dengan waktu yang berbeda
SimpleDateFormat Format = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); datetime d1 = datetime baru (format.parse ("2016-10-31 00:00:00")); DateTime D2 = Datetime baru (format.parse ("2015-1-31 00:00:00 ")); System.out.println (Math.Abs (bulan. Monthsbetween (D1, D2) .getMonths ()));Bagian 2: Kelas Alat Pemrosesan Tanggal
paket com.analysys.website.control; Impor java.text.parseException; import java.text.parseposition; impor java.text.simpledateFormat; impor java.util.calendar; impor java.util.date; import java.util.gregorancalendar; impor org.apache.commons.lang.stringutils; import org.apache.log4j.logger; /** * Kelas Alat Pemrosesan Tanggal * @author dylan_xu * @Date 11 Mar 2012 * @modified oleh * @Modified Date * @since jdk1.6 * @see com.util.Dateutil */Kelas Publik Dateutil {// ~ bidang statis/inisialisasi // ================================================================================================== ==================================================================================================== Private Static Logger Logger = Logger.getLogger (dateutil.class); Private Static String defaultDatePattern = null; private static string timePattern = "hh: mm"; Calendar Static Private Cale = Calendar.getInstance (); string final statis public ts_format = dateutil.getDatePattern () + "hh: mm: ss.s"; / ** Tanggal format yyyy-mm string konstan*/ string final statis privat bulan_format = "yyyy-mm"; / ** Format tanggal yyyy-mm-dd string konstan*/ private static final string date_format = "yyyy-mm-dd"; / ** Tanggal Format HH: MM: SS String Constant*/ Private Static Final String Hour_Format = "HH: MM: SS"; / ** Format tanggal yyyy-mm-dd hh: mm: ss string konstan*/ private static final string datetime_format = "yyyy-mm-dd hh: mm: ss"; / ** Mulai dari konstanta string hari, menit dan kedua 00:00:00*/ string final statis privat day_begin_string_hhmmss = "00:00:00"; / ** Mulai dari satu hari, menit dan string kedua konstanta 23:59:59*/ string final statis public day_end_string_hhmmss = "23:59:59"; Private Static SimpleDateFormat sdf_date_format = new SimpleDateFormat (date_format); Private Static SimpleDateFormat SDF_HOUR_FORMAT = new SimpleDateFormat (hour_format); Private Static SimpleDateFormat SDF_DATETIME_FORMAT = new SimpleDateFormat (datetime_format); // ~ Metode // ===================================================================================================================================== / ** * Dapatkan tanggal dan waktu server saat ini, kembalikan dalam bentuk string tanggal dengan format: yyyy-mm-dd hh: mm: ss * @author dylan_xu * @Date 11 Mar 2012 * @return * / public static getDatetime () {try {return sdf_datime * public getDateTime () {try {return sdf_datime_; } catch (exception e) {logger.debug ("dateutil.getDateTime ():" + e.getMessage ()); kembali ""; } } /** * Get the current date of the server, return in the form of a date string with the format: yyyy-MM-dd * @author dylan_xu * @date Mar 11, 2012 * @return */ public static String getDate() { try { return sdf_date_format.format(cale.getTime()); } catch (exception e) {logger.debug ("dateutil.getDate ():" + e.getMessage ()); kembali ""; }} / ** * Dapatkan waktu server saat ini, kembalikan dalam bentuk string tanggal dengan format: hh: mm: ss * @author dylan_xu * @date 11 Mar 2012 * @return * / string statis publik () {string temp = ""; coba {temp += sdf_hour_format.format (cale.getTime ()); kembalikan suhu; } catch (exception e) {logger.debug ("dateutil.getTime ():" + e.getMessage ()); kembali ""; }} / ** * Nilai default dari tanggal mulai selama statistik * @author dylan_xu * @Date 11 Mar 2012 * @return * / public static string getStartDate () {coba {return getYear () + "-01-01"; } catch (exception e) {logger.debug ("dateutil.getStartDate ():" + e.getMessage ()); kembali ""; }} / ** * Nilai default dari tanggal akhir selama statistik * @author dylan_xu * @date 11 Mar 2012 * @return * / string statis public getEndDate () {coba {return getDate (); } catch (Exception e) {logger.debug ("dateutil.getEndDate ():" + e.getMessage ()); kembali ""; }} / ** * Dapatkan tahun tanggal saat ini server * @author dylan_xu * @date 11 Mar 2012 * @return * / public static string getYear () {coba {return string.valueof (cale.get (calendar.year)); } catch (exception e) {logger.debug ("dateutil.getYear ():" + e.getMessage ()); kembali ""; }} / ** * Dapatkan bulan dari tanggal saat ini server * @author dylan_xu * @date 11 Mar 2012 * @return * / public static string getMonth () {coba {java.text.decimalformat df = new java.text.decimalformat (); df.Applypattern ("00; 00"); return df.format ((cale.get (calendar.month) + 1)); } catch (exception e) {logger.debug ("dateutil.getMonth ():" + e.getMessage ()); kembali ""; }} / ** * Dapatkan jumlah hari di bulan saat ini dari server * @author dylan_xu * @Date 11 Mar 2012 * @return * / public static string getDay () {coba {return string.valueof (cale.get (calendar.day_of_month)); } catch (exception e) {logger.debug ("dateutil.getday ():" + e.getMessage ()); kembali ""; }} / ** * Perbandingan jumlah hari antara dua tanggal * @author dylan_xu * @Date 11 Mar 2012 * @param Date1 * @param Date2 * @return * / public static int getMargin (string date1, string date2) {int margin; coba {parseposition pos = parseposisi baru (0); Parseposisi pos1 = parseposisi baru (0); Tanggal dt1 = sdf_date_format.parse (date1, pos); Tanggal dt2 = sdf_date_format.parse (date2, pos1); long l = dt1.getTime () - dt2.getTime (); margin = (int) (l / (24 * 60 * 60 * 1000)); return margin; } catch (exception e) {logger.debug ("dateutil.getMargin ():" + e.toString ()); kembali 0; }} / ** * Perbandingan jumlah hari ketika dua tanggal berbeda * @author dylan_xu * @Date 11 Mar 2012 * @param Date1 * @param Date2 * @return * / public statis getdoublemargin (string date1, string date2) {double margin; coba {parseposition pos = parseposisi baru (0); Parseposisi pos1 = parseposisi baru (0); Tanggal dt1 = sdf_datetime_format.parse (date1, pos); Tanggal dt2 = sdf_datetime_format.parse (date2, pos1); long l = dt1.getTime () - dt2.getTime (); margin = (l / (24 * 60 * 60 * 1000.00)); return margin; } catch (exception e) {logger.debug ("dateutil.getMargin ():" + e.toString ()); kembali 0; }} / ** * Perbandingan jumlah bulan antara dua tanggal * @Author dylan_xu * @Date 11 Mar 2012 * @param Date1 * @param Date2 * @return * / public static int getMonthmargin (string date1, string date2) {int margin; coba {margin = (integer.parseint (date2.substring (0, 4)) - integer.parseint (date1.substring (0, 4))) * 12; margin += (integer.parseint (date2.substring (4, 7) .replaceall ("-0", "-"))-integer.parseint (date1.substring (4, 7) .replaceall ("-0", "-")))); return margin; } catch (exception e) {logger.debug ("dateutil.getMargin ():" + e.toString ()); kembali 0; }} / ** * Kembalikan tanggal setelah x hari tanggal * @author dylan_xu * @date 11 Mar 2012 * @param Tanggal * @param i * @return * / public static string addday (date string, int i) {cobalah {gregoriancalendar gcal = gregoriancalendar (integer)) (0, new gregoriancalendar.pregorer.sparer.parsure. Integer.parseint (date.substring (5, 7)) - 1, integer.parseint (date.substring (8, 10)))); gcal.add (gregoriancalendar.date, i); return sdf_date_format.format (gcal.getTime ()); } catch (exception e) {logger.debug ("dateutil.addday ():" + e.toString ()); return getDate (); }} / ** * Kembalikan tanggal setelah tanggal ditambah x bulan * @author dylan_xu * @Date 11 Mar 2012 * @param Tanggal * @param i * @return * / string statis publik addmonth (date string, int i) {coba {gregoriancalendar gcal = gregoriancalcalendar (3) (gregoriancalendar gcal = new gregoriancalendar (3) (gregoriancalendar gcal = new gregoriancalendar (3) (gregoriank gcal = new gregoriancalendar. Integer.parseint (date.substring (5, 7)) - 1, integer.parseint (date.substring (8, 10)))); gcal.add (gregoriancalendar.month, i); return sdf_date_format.format (gcal.getTime ()); } catch (exception e) {logger.debug ("dateutil.addmonth ():" + e.tostring ()); return getDate (); }} / ** * Kembalikan tanggal setelah tanggal ditambah x tahun * @author dylan_xu * @Date 11 Mar 2012 * @param Date * @param i * @return * / Public String Addyear (Tanggal String, int i) {coba {Gregoriancalendar gcal = gregoriancalcalendar (3) (gregoriankalendar gcal = new gregoriancalendar (0 integ. Integer.parseint (date.substring (5, 7)) - 1, integer.parseint (date.substring (8, 10)))); gcal.add (gregoriancalendar.ear, i); return sdf_date_format.format (gcal.getTime ()); } catch (exception e) {logger.debug ("dateutil.addyear ():" + e.toString ()); kembali ""; }} / ** * Kembalikan hari maksimum bulan tertentu dalam tahun tertentu * @author dylan_xu * @Date 11 Mar 2012 * @param tahun * @param bulan * @return * / int static int getmaxday public (int iyear, int gambar) {int day = 0; Coba {if (IMOnth == 1 || gambar == 3 || gambar == 5 || gambar == 7 || gambar == 8 || gambar == 10 || gambar == 12) {day = 31; } else if (iMonth == 4 || gambar == 6 || gambar == 9 || gambar == 11) {day = 30; } else if ((0 == (iYear % 4)) && (0! = (iYear % 100)) || (0 == (iYear % 400))) {hari = 29; } else {day = 28; } hari kembali; } catch (exception e) {logger.debug ("dateutil.getMonthday ():" + e.toString ()); kembali 1; }} / ** * Tanggal format * @author dylan_xu * @date 11 Mar 2012 * @param orgDate * @param type * @param span * @return * / @suppresswarnings ("static-access") public string rollDate (string orgDate, int type, int span) {try {try {"" "" "" "" "try {" try {"" static-access ") public rollDate (string orgDate, int span) {try {static) Int iyear, Image, Iday; int ipos = 0; char seperater = '-'; if (orgDate == null || orgDate.length () <6) {return ""; } ipos = orgDate.indexOf (seperater); if (ipos> 0) {iyear = integer.parseint (orgDate.substring (0, ipos)); temp = orgDate.substring (IPOS + 1); } else {iyear = integer.parseint (orgDate.substring (0, 4)); temp = orgDate.substring (4); } ipos = temp.indexof (seperater); if (ipos> 0) {image = integer.parseint (temp.substring (0, ipos)); temp = temp.substring (IPOS + 1); } else {ipos = temp.indexof (seperater); if (ipos> 0) {image = integer.parseint (temp.substring (0, ipos)); temp = temp.substring (IPOS + 1); } else {image = integer.parseint (temp.substring (0, 2)); temp = temp.substring (2); } gambar--; if (imonth <0 || gambar> 11) {gambar = 0; } iday = integer.parseint (temp); if (hari <1 || iday> 31) iday = 1; Kalender orgCale = calendar.getInstance (); orgCale.set (iyear, Image, Iday); temp = this.rolldate (orgcale, type, span); kembalikan suhu; } catch (Exception e) {return ""; }} public static string rollDate (kalender kal, tipe int, int span) {coba {string temp = ""; Rolcale Kalender; rolcale = cal; rolcale.add (tipe, span); temp = sdf_date_format.format (rolcale.getTime ()); kembalikan suhu; } catch (Exception e) {return ""; }} / ** * Mengembalikan format tanggal default * @author dylan_xu * @date 11 Mar 2012 * @return * / public static sinkronisasi string getDatePattern () {defaultDatePattern = "yyyy-mm-dd"; return DefaultDatePattern; } / ** * Ganti tanggal yang ditentukan ke dalam string dalam format dan output default, seperti: yyyy-mm-dd * @author dylan_xu * @Date 11 Mar 2012 * @param Adate * @return * / public static final string getDate (tanggal adate) {SimplateFormat df = null; String returnValue = ""; if (adate! = null) {df = new SimpleDateFormat (getDatePattern ()); returnValue = df.format (adate); } return (returnValue); } / ** * Dapatkan string waktu untuk tanggal yang diberikan, formatnya adalah format waktu default saat ini * @author dylan_xu * @Date 11 Mar 2012 * @param thetime * @return * / string statis publik getTimeNow (tanggal thetime) {return getDatetime (timePattern, thetime); } / ** * Dapatkan objek kalender kalender untuk waktu saat ini * @author dylan_xu * @Date 11 Mar 2012 * @return * @throws parseException * / Kalender publik getToday () melempar Parseexception {tanggal hari ini = tanggal baru (); SimpleDateFormat df = new SimpleDateFormat (getDatePattern ()); String TodayAsstring = df.format (hari ini); Kalender Cal = Gregoriancalendar () baru; cal.settime (convertStringTodate (TodayAsstring)); Kembalikan Cal; } / ** * Konversi kelas tanggal menjadi formulir string dalam format yang ditentukan * @author dylan_xu * @date 11 Mar 2012 * @param amask * @param adate * @return * / string final statis publik getDateTime (string Amask, date adate) {SimpleDateFormat df = null; String returnValue = ""; if (adate == null) {logger.error ("Adate is null!"); } else {df = new SimpleDateFormat (amask); returnValue = df.format (adate); } return (returnValue); } / ** * Konversi tanggal yang ditentukan ke formulir string dalam format default * @author dylan_xu * @Date 11 Mar 2012 * @param Adate * @return * / public static final string convertDateToString (date adate) {return getDatetime (getDatePattern (), adate); } / ** * Konversi string tanggal ke tipe tanggal dalam format yang ditentukan * @author dylan_xu * @Date 11 Mar 2012 * @param Amask format tanggal yang ditentukan, seperti: yyyy-mm-dd * @param string string date yang akan dikonversi * @return * @Throws Parseexcepted Sting Public Tanggal * @trows ParseExcepty * ParseException {SimpleDateFormat df = null; Tanggal Tanggal = NULL; df = new SimpleDateFormat (Amask); if (logger.isdebugeNabled ()) {logger.debug ("converting '" + strdate + "' hingga saat ini dengan topeng '" + amask + "'"); } coba {date = df.parse (strdate); } catch (parseException pe) {logger.error ("parseException:" + pe); Lempar PE; } return (tanggal); } / ** * Konversi String Tanggal ke Tanggal Ketik dalam format default * @author dylan_xu * @date 11 Mar 2012 * @param strdate * @return * @throws parseException * / Tanggal statis public = null; coba {if (logger.isdebugeNabled ()) {logger.debug ("Konversi tanggal dengan pola:" + getDatePattern ()); } adate = convertStringTodate (getDatePattern (), strdate); } catch (parseException pe) {logger.error ("tidak dapat mengonversi '" + strdate + "' ke kencan, melempar pengecualian"); lempar parseException baru (pe.getMessage (), pe.getErroroffset ()); } return adate; } / ** * Mengembalikan string tanggal Java Java Simple Type * @Author dylan_xu * @Date 11 Mar 2012 * @return * / Public Static String getSimpledateFormat () {SimpleDateFormat formatter = new SimpleDateFormat (); String nDateTime = formatter.format (tanggal baru ()); mengembalikan nDATetime; }/** * Perbandingan tanggal dalam format string yang ditentukan dengan waktu saat ini * @author dylan * @Date 17 Februari 2012 * @param strdate waktu yang diperlukan untuk membandingkan * @return * <p> * int kode * <ul> * <li> -1 waktu saat ini <bandingkan waktu </li> * <li> 0 waktu saat ini = waktu banding </Li> Li> = Li> = Li> </Li> <Li> <Li> 0 Waktu Saat Ini = Bandingkan Waktu/Li> Li> Li> = Li> </Li> </Li> <Li> 0 saat ini = Bandingkan Waktu </Li> * </p> */ public static int compareToCurtime (string strdate) {if (stringutils.isBlank (strdate)) {return -1; } Tanggal curTime = cale.getTime (); String strcurtime = null; coba {strcurtime = sdf_datetime_format.format (curTime); } catch (Exception e) {if (logger.isdebugeNabled ()) {logger.debug ("[tidak dapat memformat '" + strdate + "' ke tanggal, melempar pengecualian:" + e.getLocalizedMessage () + "]"); }} if (stringutils.isnotblank (strcurtime)) {return strcurtime.compareto (strdate); } return -1; } / ** * Tambahkan waktu minimum ke tanggal kueri * * @param target tipe Tanggal * @param Tanggal Parameter Konversi * @Return * / @suppressWarnings ("Deprecation") Tanggal Statis Publik AddStarttime (Tanggal Param) {Tanggal Tanggal = Param; coba {date.setHours (0); Date.setMinutes (0); date.setseconds (0); tanggal pengembalian; } catch (Exception ex) {tanggal kembali; }} / ** * Tambahkan waktu maksimum ke tanggal kueri * * @param target tipe Tanggal * @param Tanggal Parameter Konversi * @Return * / @suppressWarnings ("Deprecation") Tanggal Statis Public Tanggal (Tanggal Param) {Tanggal Tanggal = Param; coba {date.setHours (23); date.setminutes (59); date.setseconds (0); tanggal pengembalian; } catch (Exception ex) {tanggal kembali; }} / *** Kembalikan jumlah hari di tahun saat ini** @param bulan* @return Total hari di bulan yang ditentukan* / @suppressWarnings ("Deprecation") Public Static String GetMonthLastday (int Bulan) {tanggal = tanggal baru (); int [] [] hari = {{0, 30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 30, 31, 30, 31}}; int tahun = date.getYear () + 1900; if (tahun % 4 == 0 && tahun % 100! = 0 || tahun % 400 == 0) {hari pengembalian [1] [bulan] + ""; } else {return day [0] [bulan] + ""; } } /** * Return the number of days in the specified month in the specified year* * @param Year year * @param Month month * @return Total days in the specified month*/ public static String getMonthLastDay(int year, int month) { int[][] day = { { 0, 30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31}}; if (tahun % 4 == 0 && tahun % 100! = 0 || tahun % 400 == 0) {hari pengembalian [1] [bulan] + ""; } else {return day [0] [bulan] + ""; }} / ** * menilai apakah itu tahun normal atau tahun kabisat * @author dylan_xu * @Date 11 Mar 2012 * @param tahun * @return * / public static boolean isleapyear (tahun int) {if ((tahun % 4 == 0 && tahun % 100! = 0) || (tahun 400) == 0) {tahun) {tahun) {tahun) {tahun) {tahun 4 == 0) {tahun) {tahun 4 == 0) { } else {return false; }} / ** * Dapatkan cap hari dari waktu saat ini * @author dylan_xu * @date 11 Mar 2012 * @return * / @suppressWarnings ("Deprecation") Public Static String getTimestamp () {date date = cale.gettime (); String timestamp = "" + (date.getYear () + 1900) + date.getMonth () + date.getDate () + date.getMinutes () + date.getSeconds () + date.getTime (); Return Timestamp; } / ** * Dapatkan cap hari dari waktu yang ditentukan * * @return * / @suppressWarnings ("Deprecation") Public String GetTimestamp (Tanggal Tanggal) {string timestamp = "" + (date.getyear ()) + 1900) + date.getManth () + date.getDate () + date.getmin. Return Timestamp; } public static void main (string [] args) {System.out.println (getYear () + "|" + getMonth () + "|" + getDate ()); }}Di atas adalah semua tentang artikel ini, saya harap ini akan membantu untuk pembelajaran semua orang.