En el desarrollo de proyectos, las fechas son una parte indispensable de nosotros. Este artículo resumirá algunos métodos comunes sobre las fechas en el desarrollo del código para facilitar su uso posterior. Los platos se sirven directamente debajo:
paquete com.example.util; import java.text.parseException; import java.text.simpledateFormat; import java.util.arrayList; import java.util.calendar; import java.util.date; import java.util.list; / *** Métodos de fecha común** @author**/ public class dateUtils {/ *** Variables comunes*/ public static final String date_format_full = "yyyy-mm-dd hh: mm: ss"; public static final String date_format_ymd = "yyyy-mm-dd"; public static final String date_format_hms = "Hh: mm: ss"; public static final String date_format_hm = "HH: MM"; Public static final String date_format_ymdhm = "yyyy-mm-dd hh: mm"; Public static final String date_format_ymdhms = "yyyymmddhhmmss"; Public estática final Long One_day_mills = 3600000 * 24; Public estática final int week_days = 7; Private static final int dataLength = date_format_ymdhm.length (); / ** * Convertir la fecha a la cadena de formato * * @param tiempo * @param format * @return */ public static string formatDateToToString (hora de fecha, formato de cadena) {SimpleDateFormat sdf = new SimpleDateFormat (format); return sdf.format (tiempo); } / ** * Convierta la cadena a la fecha de formato * (nota: Cuando la fecha en que ingresó es 2014-12-21 12:12, el formato correspondiente debe ser aaa yyyy-mm-dd hh: mm * de lo contrario, la excepción se lanzará) * @param date * @Param format * @return * @throws parseexception * @ * / public fechin formattring SimpleDateFormat sdf = new SimpleDateFormat (formato); intente {return sdf.parse (fecha); } catch (parseException ex) {ex.printStackTrace (); tirar nueva runtimeException (ex.ToString ()); }} / ** * Determine si una fecha pertenece a dos períodos * @param tiempo * @param timerange * @return * / public static boolean istimeInrange (fecha de fecha, fecha [] timerange) {return (! Time.bebore (Timerange [0]) &&! After (Timerange [1])); } / ** * Tiempo desde el tiempo completo hasta el minuto * * @param fulldatestr * @return * / public static string getDateTeTominute (String fulLdatestr) {return fulldatestr == NULL? NULL: (fulLDATESTR.LENGHT ()> = DataLength? FulLdatestr.Substring (0, DataLength): fulldatestr); } /*** regresa todas las semanas del año especificado. La lista contiene la cadena de cadena [2] Cadena de objeto [0] Fecha de inicio de la semana, y la cadena [1] es la fecha de finalización de la semana. * La fecha está en el formato de YYYY-MM-DD la primera semana de cada año debe incluir el lunes y ser completos de siete días. * Por ejemplo: la primera semana de 2009 comienza en 2009-01-05 y los extremos en 2009-01-11. ¿Qué año es el lunes? Entonces, ¿qué semana está incluida en esta semana? * Por ejemplo: 2008-12-29 es el lunes de 2009-01-04 es el domingo, por lo que esta semana es la última semana de 2008. * * @Param año * format yyyyy, debe ser mayor que 1900 y menos de 9999 * @@return @ */ public static List <String []> getweeksbyyear (último año intane) {int Weeks = getweeknumofyear (año (año); List <String []> result = new ArrayList <String []> (Weeks); int inicio = 1; int end = 7; for (int i = 1; i <= weeks; i ++) {string [] tempweek = new String [2]; tempweek [0] = getDateForDayOfWeek (año, i, inicio); tempweek [1] = getDateForDayOfWeek (año, i, final); resultado.Add (Tempweek); } resultado de retorno; } / ** * Calcule el año anterior y la semana del año y la semana especificados * * * @param año * @param week * @return @ * / public static int [] getLastyearweek (int año, int week) {if (week <= 0) {tire nueva ilegalargumentException ("El número semanal no puede ser menos que 1 !!"); } int [] resultado = {semana, año}; if (semana == 1) {// resultado del año anterior [1] -= 1; // Resultado de la semana pasada [0] = Getweeknumofyear (resultado [1]); } else {resultado [0] -= 1; } resultado de retorno; } / ** * Next [semana, año] * * @param año * @param week * @return @ * / public static int [] getNextyearweek (int año, int week) {if (week <= 0) {tire nueva ilegalArgumentException ("¡El número semanal no puede ser inferior a 1!"); } int [] resultado = {semana, año}; int week = getweeknumofyear (año); if (semana == semanas) {// Resultado del próximo año [1] += 1; // resultado de la primera semana [0] = 1; } else {resultado [0] += 1; } resultado de retorno; } /*** Calcule cuántas semanas hay en un año especificado. (comienza el lunes) * * @param año * @return @ */ public static int getweeknumofyear (final intane intane) {return getweeknumofyear (año, calendar.monday); } /*** Calcule cuántas semanas hay en un año especificado. * * @param año * yyyy * @return @ */ public static int getweeknumofyear (último año intane, int firstdayofweek) {// Hay al menos 52 semanas cada año, y hasta 53 semanas. int minweeks = 52; int maxweeks = 53; int resultado = minweeks; int sindex = 4; Date de cadena = getDateForDayOfWeek (año, MaxWeeks, FirstdayOfWeek); // Para determinar si el año coincide, si coincide, significa que hay 53 semanas. if (date.substring (0, sindex) .equals (año)) {resultado = maxweeks; } resultado de retorno; } public static int getWeekSOfWeekyear (final int año) {calendar cal = calendar.getInstance (); Cal.SetFirstdayOfWeek (calendario.monday); Cal.SetMinimaldaySinFirstWeek (Week_days); Cal.set (calendario.YAR, año); regresar cal.getweeksinweekyear (); } / ** * Obtenga la fecha correspondiente al día de la semana del año especificado yyyy-mm-dd (a partir del lunes) * * @param año * @param weekofyear * @param dayofweek * @return yyyyyy-mm-dd fecha en format @ * / public static string getDateFordayOkeek (intane, intanefyear, intdayofweek) WeekOfyear, Dayofweek, calendario. Menay); } /** * Obtenga la fecha correspondiente al día de la semana del año especificado yyyy-mm-dd, y especifique el día de la semana para calcular el primer día de la semana (Firstdayofweek) * * @param año * @param weekofyear * formato */ public static string getDateForDayOfWeek (int año, int WeekOfyear, int dayofweek, int FirstdayOfWeek) {calendar cal = calendar.getInstance (); Cal.SetFirstdayOfWeek (FirstdayOf Week); cal.set (calendario.day_of_week, dayofweek); Cal.SetMinimaldaySinFirstWeek (Week_days); Cal.set (calendario.YAR, año); cal.set (calendar.week_of_year, weekofyear); return FormatDateToString (cal.gettime (), date_format_ymd); } / ** * Obtenga la fecha especificada de la semana * * @param datetime * @throws parseException * @ * / public static int Cal.SetFirstdayOfWeek (calendario.monday); Cal.SetMinimaldaySinFirstWeek (Week_days); Fecha fecha = formatStringTodate (DateTime, date_format_ymd); Cal.settime (fecha); return cal.get (calendar.day_of_week); } / ** * Calcule todas las fechas en una determinada semana de un año determinado (del lunes al primer día de la semana) * * * @param anualnum * @param weeknum * @return @ * / public static list <string> getweekdays (int anualnum, int weeknum) {return getweekdays (anualnum, weeknum, calendar.monday); } / ** * Calcule todas las fechas en una determinada semana de un año determinado (siete días) * * @param anualnum * @param weeknum * @return yyyyy-mm-dd Format fechas list * / public static list <String> getweekdays (int año, int WeekOfyear, int FirstdayOfweek) {List <String> Dates = New ArrayList <String> (); int dayofweek = Firstdayofweek; para (int i = 0; i <week_days; i ++) {fechates.add (getDateForDayOfWeek (año, semana de año, dayofweek ++, firstdayofweek)); } fechas de retorno; } / ** * Obtenga la información de año y semana de la fecha de destino para la semana anterior, esta semana o la próxima semana * * @param QueryDate * Tiempo entrante * @param WeekOffset * -1: la semana pasada 0: esta semana 1: la próxima semana * @param firstdayofweek * ¿Qué día de la semana es el primer día * @return * @throws parsexception * / público static int [] getweekandear (streyear (streyear? WeekOffset, int FirstdayOfWeek) lanza ParseException {date date = FormatStringTodate (QueryDate, date_format_ymd); Calendario calendario = calendario.getInstance (); calendario. Settime (fecha); calendario.setFirstdayOfWeek (Primerdayofweek); calendario.setminimaldaysinfirstweek (Week_days); int año = calendar.getweekyear (); int Week = calendar.get (calendar.week_of_year); int [] resultado = {semana, año}; switch (WeekOffset) {Caso 1: resultado = getNextyEarWeek (año, semana); romper; caso -1: resultado = getLastyearweek (año, semana); romper; predeterminado: ruptura; } resultado de retorno; } / ** * Calcule el número de días para dos días * * @Param StartDate * String de fecha de inicio * @param EndDate * End Date String * @return * @throws parseException * / public static int 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 (inicio, finalización); } return dayGap; } private static int getdaysbetween (Date StartDate, Date EndDate) {return (int) ((endDate.getTime () - startDate.getTime ()) /one_day_mills); } / ** * Calcule la diferencia en el número de días entre dos fechas * @param startDate * @param enddate * @return * / public static int if (startDate! = null && enddate! = null) {date = getdaysbetween (startDate, endDate); } fecha de retorno; } / ** * Calcule la brecha del año entre dos fechas * * @param FirstDate * @param SecondDate * @Return * / public static int getyearGapOfDates (date firstDate, date SECTDATE) {if (FirstDate == NULL || SECTDATE == NULL) {return 0; } Calendario helpcalendar = calendar.getInstance (); Helpcalendar.setTime (First Date); int FirstYear = HelpCalendar.get (Calendar.Year); Helpcalendar.setTime (Seconddate); int SECWYEAR = HelpCalendar.get (Calendar.Year); regresar segundo - Firstyear; } / ** * Calcule la brecha de mes entre dos fechas * * @param FirstDate * @param SecondDate * @return * / public static int getMonthGapOfDates (date FirstDate, Date SecondDate) {if (FirstDate == NULL || SecondDate == NULL) {return 0; } return (int) ((SecondDate.GetTime () - FirstDate.GetTime ()) / One_Day_Mills / 30); } / ** * Calcule si la fecha actual está incluida * * @param datys * @return * / public static boolean isContainCurrent (list <string> fechas) {boolean flag = false; SimpleDateFormat fmt = new SimpleDateFormat (date_format_ymd); Fecha fecha = nueva fecha (); String datStr = fmt.format (fecha); for (int i = 0; i <dates.size (); i ++) {if (datStr.equals (dates.get (i))) {flag = true; }} Bandera de retorno; } / ** * Calcule la fecha de la hora de la fecha a partir de la fecha * * @param fecha * @param tiempo * @return * @throws parseException * / public static string getCalCalculatateTetOstring (String startDate, int tiempo) lanza parseException {string denteDate = null; if (startDate! = null && startDate.length ()> 0) {date date = formatStringTodate (startDate, date_format_ymd); Calendario c = calendario.getInstance (); c.setTime (fecha); c.set (calendario.day_of_year, tiempo); fecha = c.gettime (); resultDate = FormatDateToString (date, date_format_ymd); } return resultDate; } / ** * Obtenga la semana del año en que la fecha especificada se calcula a partir de una cierta fecha * * @param fecha * @param admitDate * @return * @throws parseException * @ * / public static int [] getyearandweeks (fecha de cadena, string admitDate) tira parseexception {calendar c = calendar.getInstance (); C.SetTime (FormatStringTodate (admitDate, date_format_ymd)); int time = c.get (calendar.day_of_week); devolver getweekandyear (fecha, 0, hora); } / ** * Obtenga la fecha de referencia de fecha especificada, todas las fechas de la semana anterior o posterior * @param Refdate * Fecha de referencia * @param WeekOffset * -1: la semana pasada 0: Esta semana 1: la próxima semana * @param startDate * ¿Qué día cuenta el primer día de la semana * @return yyyyy-mmm-dd fecha * @throws parseexception * @ * / public static list <string> strat Refdate, int WeekOffset, String StartDate) lanza ParseException {// StartDate como el primer día de la semana calendario c = calendar.getInstance (); C.SetTime (FormatStringTodate (startDate, date_format_ymd)); int FirstdayOfWeek = C.get (calendar.day_of_week); // Obtenga la semana correspondiente int [] weekandyear = getweekandyear (refdate, weewoffset, primer díafweek); // Obtenga todas las fechas de la semana correspondiente Getweekdays (Weekandyear [1], Weekandyear [0], Firstdayofweek); } / ** * Obtenga el intervalo de tiempo de acuerdo con el punto de tiempo * * @param horas * @return * / public static list <String []> getTimePointsByhour (int [] horas) {list <String []> Hourpoints = new ArrayList <String []> (); String sbStart = ": 00: 00"; Cadena sbend = ": 59: 59"; for (int i = 0; i <hours.length; i ++) {string [] Times = new String [2]; tiempos [0] = horas [i] + sbstart; tiempos [1] = (horas [(i + 1 + hora.length) % horas.length] - 1) + sbend; Hourpoints.Add (Times); } return Hourpoints; } / ** * Aumente o disminuya el número de días de acuerdo con la fecha especificada * * @param fecha * @param cantidad * @return * / public static fechay adddays (fecha de fecha, cantidad int } / ** * Aumente o disminuya el número de acuerdo con la fecha especificada, escriba * * @param fecha * @param calendarfield * @param cantidad * @return * / public static date add (fecha de fecha, int calendarfield, int monta) {if (date == null) {tirar nueva IllegalarGumentException ("La fecha no debe ser nulo"); } Calendario c = calendar.getInstance (); c.setTime (fecha); C.Add (Calendarfield, cantidad); regresar c.gettime (); } / ** * Obtenga la hora máxima de la fecha de la fecha actual 2014-12-21 23:59:59 * @return * / public static date getCurdateWithMextime () {calendario c = calendar.getInstance (); c.set (calendario.hour_of_day, 23); c.set (calendario. Minute, 59); c.set (calendario. Segundo, 59); regresar c.gettime (); } / ** * Obtenga la hora mínima de fecha de la fecha actual2014-12-21 00:00:00 * @return * / public static date getCurdateWithMInTime () {calendario c = calendar.getInstance (); c.set (calendario.hour_of_day, 0); c.set (calendario.minte, 0); c.set (calendario.segundo, 0); c.set (calendario.milliseCond, 0); regresar c.gettime (); }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.