Este artículo comparte la clase de herramienta de operación de fecha Java para usted, obteniendo la fecha especificada un día antes y un día después del día; conversión de fecha; El número de días entre dos fechas y otras herramientas para su referencia. El contenido específico es el siguiente
import java.text.parseException; import java.text.simpledateFormat; import java.util.arrayList; import java.util.calendar; import java.util.date; import java.util.list; clase pública dateutil { / ** * El día antes de que se obtenga la fecha especificada * * @param especificadaday * @param format * @return * @throws excepción * / fecha estática pública getdaybefore (fecha de fecha, formato de cadena) {calendar c = calendar.getInstance (); c.setTime (fecha); int day = c.get (calendar.date); c.set (calendario.date, día - 1); Cadena dayborStry = new SimpledateFormat (formato) .Format (c.gettime ()); Fecha daybefore = null; intente {daybefore = new SimpleDateFormat (formato) .Parse (daybeforestr); } catch (ParseException e) {E.PrintStackTrace (); } return daybore; } / ** * El día después de obtener la fecha especificada * * @param especificadaday * @return * / public static date getdayafter (fecha de fecha, formato de cadena) {calendario c = calendar.getInstance (); c.setTime (fecha); int day = c.get (calendar.date); c.set (calendario.date, día + 1); String dayAfterStr = new SimpleDateFormat (formato) .Format (C.GetTime ()); Fecha dayafter = nulo; intente {dayafter = new SimpleDateFormat (formato) .Parse (DayAfterStr); } catch (ParseException e) {E.PrintStackTrace (); } return dayafter; } / ** * Obtenga el día antes de la fecha especificada * * @param especificadaday * @param format * @return * @throws excepción * / public static string getSpecifiedDayBeFore (string especificadaday, formato de cadena) {// SimpleDateFormat SimpleDateFormat = new // SimpleDateFormat ("yyyyym-dd"); Calendario c = calendario.getInstance (); Fecha fecha = nulo; intente {date = new SimpleDateFormat ("yy-mm-dd"). parse (especificadaday); } catch (ParseException e) {E.PrintStackTrace (); } C.SetTime (fecha); int day = c.get (calendar.date); c.set (calendario.date, día - 1); String daybefore = new SimpleDateFormat ("yyyy-mm-dd"). Format (c.gettime ()); regresar dianfore; } / ** * El día después de obtener la fecha especificada * * @param especificadaday * @return * / public static string getSpecifiedDayAfter (cadena especificada, formato de cadena) {calendario c = calendar.getInstance (); Fecha fecha = nulo; intente {// date = new SimpleDateFormat ("yy-mm-dd"). parse (especificadaday); date = new SimpleDateFormat (formato) .Parse (especificada); } catch (ParseException e) {E.PrintStackTrace (); } C.SetTime (fecha); int day = c.get (calendar.date); c.set (calendario.date, día + 1); // String dayafter = new // SimpleDateFormat ("yyyy-mm-dd"). Format (c.gettime ()); Cadena dayafter = new SimpledateFormat (formato) .Format (c.gettime ()); regreso dayafter; } / ** * preciso el tipo de fecha en una cadena en el formato especificado * * @param fecha de día * @param formato Especifique el formato * @return * / public static string date2String (día de fecha, formato de cadena) {string datStr. devolver datestr; } / ** * Convierta la cadena en un tipo de fecha en el formato especificado * * @param fecha de día * @param formato Especifique el formato * @return * / public static date String2Date (String DateStry, formato de cadena) {date strdate = null; intente {strdate = new SimpleDateFormat (formato) .Parse (datestr); } catch (ParseException e) {E.PrintStackTrace (); } return strdate; } / **** @title: fatedate2ComPareValue* @Description: Los dos tipos de fechas comparan los tamaños* @param Tipo de fecha de fecha* @param Tipo de fecha de fecha* @param formatting* @return boolean* @throws* / public static boolean datedate2CompareValue (fecha de fecha, fecha de fecha, cadena patrones) {Simpledate sencillean smantateSe SimpleDateFormat (patrón); intente {date d1 = sdf.parse (sdf.format (dayafter)); Fecha d2 = sdf.parse (sdf.format (fecha)); if (d1.gettime ()> = d2.gettime ()) {return true; }} Catch (ParseException e) {E.PrintStackTrace (); } return false; } / ** * Compare los tamaños de dos fechas, año, mes y día * @title: datecomPareValue * @Description: un tipo de fecha estable compara el tamaño * @param date1 string type * @param date2 date type * @param @return * @return * @throws * / public estatic boolean datestrDateCompareValue (string date1, streturn) SimpleDateFormat sdf = new SimpleDateFormat (patrón); intente {date d1 = sdf.parse (date1); Fecha d2 = sdf.parse (sdf.format (fecha)); if (d1.gettime ()> = d2.gettime ()) {return true; }} Catch (ParseException e) {// toDO Auto Generated Block E.PrintStackTrace (); } return false; } / ** * Compare los tamaños de dos fechas, año, mes y día * @title: datestr2ComPareValue * @Description: Dos tipos de cadenas Comparar tamaños de tiempo * @param date1 * @param date2 * @return boolean * @throws * / @suppresswarswarnings ("sin usar") public static boolean datestrest2comparevalue (string date1, string2, string2, string Pattern) SimpleDateFormat sdf = new SimpleDateFormat (patrón); intente {date d1 = sdf.parse (date1); Fecha d2 = sdf.parse (date2); if (d1.gettime ()> = d2.gettime ()) {return true; }} Catch (ParseException e) {E.PrintStackTrace (); } return false; } / **** @title: get2DateListDate* @Date el 17 de mayo de 2016 a las 2:11:48 pm* @Description: obtenga la colección de fechas de días separados dentro del tiempo* @param @param Time de inicio* @param @param nextdate final de final List <date> get2DateListDate (string predico, string nextDate, format de cadena) {list <date> list = new ArrayList <> (); if (nextDate.equals (anterior)) {// Si la hora de inicio y la hora de finalización son iguales, regrese directamente a list.add (dateUtil.string2date (anterior, formato)); lista de devolución; } String nexDate = dateUtil.getSpecifiedDayAfter (anterior, formato); list.add (dateUtil.string2Date (anterior, formato)); list.add (dateUtil.string2Date (nexdate, format)); while (! nexdate.equals (nextDate)) {string nextNextDate = dateUtil.getSpecifiedDayAfter (nexDate, format); list.add (dateUtil.string2Date (nextDate, format)); nexDate = nextNextDate; } Lista de retorno; } / **** @title: get2DateListDate* @Date el 17 de mayo de 2016 a las 2:11:48 pm* @Description: obtenga la colección de cadenas de días separados dentro del tiempo* @param @param Time de inicio* @param @param nextdate final de final List <String> get2DateListDatestr (string preddo, string nextDate, format de cadena) {list <string> list = new ArrayList <> (); if (nextDate.equals (anterior)) {// Si la hora de inicio es igual a la hora de finalización, entonces es la misma lista de día.Add (anterior); lista de devolución; } String nexDate = dateUtil.getSpecifiedDayAfter (anterior, formato); list.add (anterior); list.add (nexdate); while (! nexdate.equals (nextDate)) {string nextNextDate = dateUtil.getSpecifiedDayAfter (nexDate, format); list.add (nextDate); nexDate = nextNextDate; } Lista de retorno; } /** * * @Title: get2DateListWithDate * @date May 26, 2016 at 9:20:29 am * @Description: Get the date between two dates * @param @param startDate Start date date type* @param @param endDate End date date type* @param @return * @return List<Date> datelist * @throws */ public static List<Date> get2DateListWithDate (Date StartDate, Date EndDate, String Format) {list <date> list = new ArrayList <> (); if (startDate.getTime ()> endDate.getTime ()) {return List; } String startDatestr = dateUtil.Date2String (startDate, format); Cadena enddatestr = dateUtil.Date2String (enddate, format); if (startDatestr.equals (enddatestr)) {// Si la hora de inicio es igual a la hora de finalización, es el mismo día list.add (startDate); lista de devolución; } Date nextDate = dateUtil.getDayAfter (startDate, format); Cadena nextDatestr = dateUtil.Date2String (nextDate, format); // cadena enddatestr = dateUtil.Date2String (enddate, format); list.add (startDate); list.add (nextDate); while (! nextDatestr.equals (enddatestr)) {string nextNextDate = dateUtil.getSpecifiedDayAfter (nextDatestr, format); list.add (dateUtil.string2Date (nextDate, format)); nextDatestr = nextNextDate; } Lista de retorno; } public static void main (string [] args) lanza la excepción { / ** / String preddo = getSpifiedDayBeFore ("2016-05-01", "yyyy-mm-dd"); String nextDate = getSpecifiedDayAfter ("2016-05-03", "aaa yyyy-mm-dd"); Date beFroDay = getdaybefore (nueva fecha (), "yyyy-mm-dd"); Date datECHTER = getDayAfter (nueva fecha (), "aaa yyy-mm-dd"); // System.out.println ("Día anterior:" + PRECUENTE + "A DAY DÍA:" + NextDate); // System.err.println ("Día anterior:" + date2String (beFroDay, "aaa yyyy-mm-dd") + "// al día siguiente:" + dat-mahter); Cadena mat = "yyyy-mm-dd"; // Es mejor leer SimpleDateFormat de la base de datos datetEmagat = new SimpleDateFormat; Fecha dd = dateUtil.getdaybefore (nueva fecha (), MAT); // date beFroDay = getDayBefore (nueva fecha (), "aaa yyy-mm-dd"); Cadena sd = date2String (beFroDay, "aaa yyyy-mm-dd"); String datstr = DateTimeFormat.Format (beFroDay); // system.out.println ("datestr ="+datestr+"sd"+sd); // list <date> listDate = get2DateListDate ("2016-05-01", "2016-05-03", "yyyy-mm-dd"); // List <String> ListDatestr = get2DateListDatestr ("2016-05-01", "2016-05-03", "aaa yyy-mm-dd"); Date startDate = new Date (); Date enddate = DateTimeFormat.Parse ("2016-05-31"); List <date> listDate = get2DateListWithDate (startDate, enddate, "aaa yyyy-mm-dd"); for (int i = 0; i <listDate.size (); i ++) {system.err.println (listDate.get (i)); } /*for (int i = 0; i <listDatestr.size (); i ++) {//system.out.println(ListDatestr.get(i)); }*/}Lo anterior se trata de este artículo, espero que sea útil para todos aprender la programación de Java.