Эта статья в основном разделена на две части для обработки дат. Вот подробное введение к нему.
Часть 1: Основы обработки дат
Дата класса <br /> Функция: основная функция - получить текущее время и преобразовать дату в стандартный формат
Date Date = New Date (); SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd HH: MM: SS"); String Str = sdf.format (date); System.out.println ("2015-10-16 14:59:52"); Преобразовать строку в тип настоящего типа
String Day = "2014-6-5 10:30:30"; SimpleDateFormat D2 = new SimpleDateFormat ("yyyy-mm-dd HH: MM: SS"); Date Date2 = D2.parse (день); System.out.println ("Чт июнь 05 10:30:30 CST 2014"); Приложение класса календаря
Класс java.util.calendar - это абстрактный класс. Вы можете получить объект календаря, вызывая статический метод GetInstance (). Этот объект был инициализирован текущей датой и временем, то есть он представляет текущее время по умолчанию.
Календарь C = календарь.getInstance (); int Год = C.Get (Calender.YEAR); int Month = C.Get (Calender.Month) +1; // Получить месяц, 0 означает январь int day = c.get (calender.day_of_month); int hour = c.get (calender.hour_of_day); int miname = c.get (calender.minute); int second = c.get (calender.second);
Сравните 2 месяца с разным временем
SimpleDateFormat format = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); datetime d1 = new dateTime (format.parse ("2016-10-31 00:00:00"); DateTime D2 = New DateTime (Format.Parse ("2015-1-31); 00:00:00 ")); System.out.println (math.abs (months.monthsween (d1, d2) .getmonths ()));Часть 2: класс инструментов обработки даты
пакет com.analysys.website.control; Import java.text.parseexception; import java.text.parseposition; import java.text.simpledateformat; import java.util.calendar; import java.util.date; импорт java.util.gregorianCalendar; Импорт org.apache.commons.lang.stringutils; import org.apache.log4j.logger; /** * Класс инструмента обработки даты * @author dylan_xu * @date 11 марта 2012 г. * @modified by * @modified date * @since jdk1.6 * @see com.util.dateutil */public class dateutil {// ~ static fields/initializers //////// ================================================================================= ================================================================================= Private Static Logger logger = logger.getLogger (dateUtil.class); частная статическая строка defaultDatePattern = null; частная статическая строковая timePattern = "HH: MM"; Частный статический календарь cale = calendar.getinstance (); public Static Final String ts_format = dateutil.getDatePattern () + "HH: MM: Ss.S"; / ** Формат даты yyyy-mm String Constant*/ Private Static Final String Month_format = "yyyy-mm"; / ** Формат даты yyyy-mm-dd string constant*/ private Static Lint String Date_format = "yyyy-mm-dd"; / ** Формат даты HH: MM: SS String Constant*/ Private Static Final String Hour_format = "HH: MM: SS"; / ** Формат даты yyyy-mm-dd HH: MM: SS String Constant*/ частная статическая конечная строка datetime_format = "yyyy-mm-dd hh: mm: ss"; / ** начало дня, минута и вторая строка постоянная 00:00:00*/ private static final String day_begin_string_hmmss = "00:00:00"; / ** Начало дня, минута и вторая строка постоянная 23:59:59*/ public static final String 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); // ~ Методы // ===================================================================================================== / ** * Получите текущую дату и время сервера, верните в форме строки даты с форматом: yyyy-mm-dd HH: MM: SS * @author dylan_xu * @date 11 марта 2012 г. * @return * / public Static String getDateTime () {try {return sdf_dateTime_format.format (cale.getmogetmoge); } catch (Exception e) {logger.debug ("dateutil.getDateTime ():" + e.getMessage ()); возвращаться ""; }} / ** * Получить текущую дату сервера, верните в форме строки даты с форматом: yyyy-mm-dd * @author dylan_xu * @date 11 марта 2012 * @return * / public Static String getDate () {try {return sdf_date_format.format (cale.getdate () {try {return sdf_date_format.format (cale.gettime ();); } catch (Exception e) {logger.debug ("dateUtil.getDate ():" + e.getMessage ()); возвращаться ""; }} / ** * Получите текущее время сервера, верните в форме строки даты с форматом: HH: MM: SS * @author dylan_xu * @date 11 марта 2012 * @return * / public Static String getTime () {string temp = ""; "; try {temp += sdf_hour_format.format (cale.gettime ()); вернуть температуру; } catch (Exception e) {logger.debug ("dateutil.gettime ():" + e.getMessage ()); возвращаться ""; }} / ** * Значение по умолчанию даты начала во время статистики * @author dylan_xu * @date 11 марта 2012 г. * @return * / public Static String getStartDate () {try {return getyear () + "-01-01"; } catch (Exception e) {logger.debug ("dateutil.getStartDate ():" + e.getMessage ()); возвращаться ""; }} / ** * Значение по умолчанию даты окончания во время статистики * @author dylan_xu * @date 11 марта 2012 г. * @return * / public static String getendDate () {try {return getDate (); } catch (Exception e) {logger.debug ("dateUtil.getendDate ():" + e.getMessage ()); возвращаться ""; }} / **. } catch (Exception e) {logger.debug ("dameutil.getyear ():" + e.getmessage ()); возвращаться ""; }} / ** * Получить месяц текущей даты сервера * @author dylan_xu * @date 11 марта 2012 г. * @return * / public static String getMonth () {try {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 ()); возвращаться ""; }} / ** * Получить количество дней в текущем месяце сервера * @author dylan_xu * @date 11 марта 2012 г. * @return * / public static String getDay () {try {return string.valueof (cale.get (calendar.day_ofmemonth)); } catch (Exception e) {logger.debug ("dameutil.getday ():" + e.getmessage ()); возвращаться ""; }} / ** * Сравнение количества дней между двумя датами * @author dylan_xu * @date 11 марта 2012 г. * @param date1 * @param date2 * @return * / public int int getmargin (строка дата1, строка дата 2) {int margin; try {parseposition pos = new parseposition (0); Parseposition pos1 = новая паутина (0); Дата dt1 = sdf_date_format.parse (date1, pos); Дата dt2 = sdf_date_format.parse (date2, pos1); long l = dt1.gettime () - dt2.gettime (); margin = (int) (L / (24 * 60 * 60 * 1000)); возврат края; } catch (Exception e) {logger.debug ("dameutil.getmargin ():" + e.toString ()); возврат 0; }} / ** * Сравнение количества дней, когда две даты различаются * @author dylan_xu * @date 11 марта 2012 г. * @param date1 * @param date2 * @return * / public static doubledoublemargin (строка date1, string date2) {double margin; try {parseposition pos = new parseposition (0); Parseposition pos1 = новая паутина (0); Дата dt1 = sdf_datetime_format.parse (date1, pos); Дата dt2 = sdf_datetime_format.parse (date2, pos1); long l = dt1.gettime () - dt2.gettime (); MARGIN = (L / (24 * 60 * 60 * 1000,00)); возврат края; } catch (Exception e) {logger.debug ("dameutil.getmargin ():" + e.toString ()); возврат 0; }} / ** * Сравнение количества месяцев между двумя датами * @author dylan_xu * @date 11 марта 2012 г. * @param date1 * @param date2 * @return * / public int getmonthmargin (строка Date1, String Date2) {int margin; try {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", "-"))); возврат края; } catch (Exception e) {logger.debug ("dameutil.getmargin ():" + e.toString ()); возврат 0; }} / ** * Вернуть дату после x дней даты * @author dylan_xu * @date 11 марта 2012 г. * @param date * @param i * @return * / public Static String addday (строка, int i) {try {gregoriancalendar gcal = new gregoriancalendar (integer.parseint (дата. Integer.parseint (date.substring (5, 7)) - 1, integer.parseint (date.substring (8, 10))); gcal.add (gregoriancalendar.date, i); вернуть sdf_date_format.format (gcal.gettime ()); } catch (Exception e) {logger.debug ("dameutil.addday ():" + e.tostring ()); return getDate (); }} / ** * Возвращает дату после даты плюс x месяцев * @author dylan_xu * @date 11 марта 2012 г. * @param date * @param i * @return * / public Static String Addmonth (String Date, int i) {try {gregoriancalendar gcal = new gregoriancalendar (integer.parseint (ate.substring, 0, hate. Integer.parseint (date.substring (5, 7)) - 1, integer.parseint (date.substring (8, 10))); gcal.add (gregoriancalendar.month, i); вернуть sdf_date_format.format (gcal.gettime ()); } catch (Exception e) {logger.debug ("dameutil.addmonth ():" + e.tostring ()); return getDate (); }} / ** * вернуть дату после даты плюс X лет * @author dylan_xu * @date 11 марта 2012 г. * @param date * @param i * @return * / public Static String Addyear (String Date, int i) {try {gregoriancalendar gcal = new gregoriancalendar (integer.parseint (ath.substring, 0, hate. Integer.parseint (date.substring (5, 7)) - 1, integer.parseint (date.substring (8, 10))); gcal.add (gregoriancalendar.year, i); вернуть sdf_date_format.format (gcal.gettime ()); } catch (Exception e) {logger.debug ("dameutil.addyear ():" + e.tostring ()); возвращаться ""; }} / ** * Возврат максимальный день определенного месяца в определенный год * @author dylan_xu * @date 11 марта 2012 г. * @param Год * @param month * @return * / public int getmaxday (int iyear, int image) {int day = 0; try {if (imonth == 1 || image == 3 || image == 5 || image == 7 || image == 8 || image == 10 || image == 12) {day = 31; } else if (imonth == 4 || image == 6 || image == 9 || image == 11) {day = 30; } else if ((0 == (iyear % 4)) && (0! = (iyear % 100)) || (0 == (iyear % 400))) {day = 29; } else {day = 28; } День возврата; } catch (Exception e) {logger.debug ("dateUtil.getMonthday ():" + e.toString ()); возврат 1; }} / ** * Дата формата * @author dylan_xu * @date 11 марта 2012 г. * @param orgdate * @param type * @param span * @return * / @suppresswarnings ("static-access") public rolldate (String orgdate, int type, int span) {try {string temp = "; 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 (ordate.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); } изображение--; if (imonth <0 || image> 11) {image = 0; } iday = integer.parseint (temp); if (день <1 || iday> 31) iday = 1; Календарь orgcale = calendar.getInstance (); orgcale.set (iyear, image, iday); temp = this.Rolldate (OrgCale, Type, Span); вернуть температуру; } catch (Exception e) {return ""; }} public static String rolldate (календарь Cal, int type, int span) {try {string temp = ""; Календарь Rolcale; rolcale = cal; rolcale.add (type, span); temp = sdf_date_format.format (rolcale.gettime ()); вернуть температуру; } catch (Exception e) {return ""; }} / ** * Возврат формат даты по умолчанию * @author dylan_xu * @date 11 марта 2012 г. * @return * / public static synchronized string getDatePattern () {defaultDatePattern = "yyyy-mm-dd"; вернуть DefaultDatePattern; } / ** * Замените указанную дату в строку в формате и выходе по умолчанию, например: yyyy-mm-dd * @author dylan_xu * @date 11 марта 2012 г. * @param adate * @return * / public Static Final String getDate (дата Adate) {SimpleDateFormat df = null; String returnValue = ""; if (adate! = null) {df = new SimpleDateFormat (getDatePattern ()); returnValue = df.format (adate); } return (returnValue); } / ** * Получите строку времени для данной даты, формат - это текущий формат времени по умолчанию * @author dylan_xu * @date 11 марта 2012 г. * @param thetime * @return * / public Static String getTimenow (дата Thetime) {return getDateTime (timePattern, thetime); } / ** * Получить объект календаря календаря для текущего времени * @author dylan_xu * @date 11 марта 2012 г. * @return * @Throws parseException * / public Calendar getToday () Throws ParseException {Date Today = New Date (); SimpleDateFormat df = new SimpleDateFormat (getDatePattern ()); String TodayAssTring = df.format (сегодня); Календарь cal = new GregorianCalendar (); Cal.SetTime (ConvertStringTodate (TodayAsstring)); вернуть Cal; } / ** * Преобразовать класс даты в строковую форму в указанном формате * @author dylan_xu * @date 11 марта 2012 г. * @param amask * @param adadate * @return * / public Static Final String getDateTime (String Amask, Date Adate) {simpleTateFormat df = null; String returnValue = ""; if (adate == null) {logger.error ("adate is null!"); } else {df = new SimpleDateFormat (amask); returnValue = df.format (adate); } return (returnValue); } / ** * Конвертировать указанную дату в форму строки в формате по умолчанию * @author dylan_xu * @date 11 марта 2012 г. * @param adate * @return * / public Static Final String ConvertDateString (дата Adate) {return getDateTime (getDatePattern (), adate); } / ** * Конвертировать строку даты в тип даты в указанном формате * @author dylan_xu * @date 11 марта 2012 г. * @param amask Указанный формат даты, например: yyyy-mm-dd * @param strdate the date string * @return * @throhs parsexcept Parseexception {simpledateformat df = null; Дата даты = null; df = new SimpleDateFormat (amask); if (logger.isdebugenabled ()) {logger.debug ("преобразование '" + strdate + "' 'на сегодняшний день с маской'" + amask + "'"); } try {date = df.parse (strdate); } catch (parseException pe) {logger.error ("parseexception:" + pe); бросить физкультуру; } return (date); } / ** * Преобразовать строку даты на дату Тип в формате по умолчанию * @author dylan_xu * @date 11 марта 2012 г. * @param strdate * @return * @throhs parseexception * / public static date convertstringtodate (String strdate) thripting parseexception {date adate = null; try {if (logger.isdebugenabled ()) {logger.debug ("Дата преобразования с шаблоном:" + getDatePattern ()); } adate = ConverttStringTodate (getDatePattern (), strdate); } catch (parseException pe) {logger.error ("не может преобразовать '" + strdate + "' в дату, бросая исключение"); бросить новое parseexception (pe.getmessage (), pe.geterroroffset ()); } вернуть adate; } / ** * вернуть строку даты Java Simple Type * @author dylan_xu * @date 11 марта 2012 г. * @return * / public static String getSiMpledateformat () {SimpleDateFormat formatter = new SimpleDateFormat (); String ndateTime = formatter.format (new Date ()); вернуть ndateTime; }/** * Сравнение даты в указанном формате строки с текущим временем * @author dylan * @date 17 февраля 2012 г. * @param strdate время, необходимое для сравнения * @return * <p> * int code * <ul> <li> -1 Текущее время <compare </li> * <li> 0 <ul> </li> * <li >> * <li >> * <li>> * <li >> <li> * <li >> * </ul> * </p> */public static int comparetocurtime (string strdate) {if (stringutils.isblank (strdate)) {return -1; } Date curtime = cale.gettime (); String strcurtime = null; try {strcurtime = sdf_datetime_format.format (curtime); } catch (Exception e) {if (logger.isdebugenabled ()) {logger.debug ("[не может отформатировать '" + strdate + "' до даты, бросая исключение:" + e.getlocalizedmessage () + "]"); }} if (stringUtils.isnotblank (strcurtime)) {return strcurtime.compareto (strdate); } return -1; } / ** * Добавить минимальное время в дату запроса * * @param Целевой тип * @param parameter date * @return * / @suppresswarnings ("Управление") Общедоступная статическая дата AddStartTime (Date Param) {Date Date = Param; try {date.sethours (0); date.setminutes (0); date.setseconds (0); Дата возвращения; } catch (Exception Ex) {дата возврата; }} / ** * Добавить максимальное время к дате запроса * * @param Целевой тип дата * @param Параметр преобразования * @return * / @suppresswarnings ("Управление") Общедоступная статическая дата приложение (дата параметры) {дата дата = param; try {date.sethours (23); date.setminutes (59); date.setseconds (0); Дата возвращения; } catch (Exception Ex) {дата возврата; }} / *** Возвращение количества дней в текущем году системы** @param Month* @return Общее количество дней в указанном месяце* / @suppresswarnings ("Упаковка") Общественная статическая строка getMonthlastday (int Month) {Date Date = New Date (); int [] [] day = {{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 Год = date.getyear () + 1900; if (Год % 4 == 0 && Год % 100! = 0 || Год % 400 == 0) {День возвращения [1] [месяц] + ""; } else {return Day [0] [Month] + ""; } } /** * 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 (Год % 4 == 0 && Год % 100! = 0 || Год % 400 == 0) {День возвращения [1] [месяц] + ""; } else {return Day [0] [Month] + ""; }} / ** * Судите, является ли это обычным годом или легальным годом * @author dylan_xu * @date 11 марта 2012 г. * @param Год * @return * / public static boolean isleapyear (int year) {if ((год % 4 == 0 && Год % 100! = 0) || (Год % 400) == 0) {return true; } else {return false; }} / ** * Получить марку дня текущего времени * @author dylan_xu * @date 11 марта 2012 г. * @return * / @suppresswarnings ("temercation") public static String getTimestAmp () {date date = cale.gettime (); String TimeStamp = "" + (date.getyear () + 1900) + date.getMonth () + date.getDate () + date.getMinutes () + date.getSeconds () + date.getTime (); вернуть временную метку; } / ** * Получите дневную марку указанного времени * * @return * / @suppresswarnings ("omemercation") public static String getTimeStamp (дата даты) {String timestamp = "" + (date.getyear ()) + 1900) + date.getmonth () + datedate () + date.getminutes () + date.getMectomemontime. вернуть временную метку; } public static void main (string [] args) {System.out.println (getyear () + "|" + getMonth () + "|" + getDate ()); }}Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.