No desenvolvimento do projeto, as datas são uma parte indispensável de nós. Este artigo resumirá alguns métodos comuns sobre datas no desenvolvimento de código para facilitar seu uso posterior. Os pratos são servidos diretamente abaixo:
pacote com.example.util; importar java.text.parseException; importar java.text.simpledateFormat; importar java.util.arraylist; importar java.util.calendar; importar java.util.date; importar java.util.list; / *** Métodos de data comum** @author**/ public class dateUtils {/ *** variáveis comuns*/ public static 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 Static final Long One_Day_Mills = 3600000 * 24; public static final int week_days = 7; private estático final int datElength = date_format_ymdhm.length (); / ** * Converta a data para formatar string * * @param horário * @param format * @return */ public static string formatDateToString (data horário, formato de string) {SimpledEfformat sdf = new SimpleDateFormat (formato); retornar sdf.format (tempo); } / ** * Converta a string na data do formato * (Nota: Quando a data digitada é 2014-12-21 12:12, o formato correspondente deve ser aaaaaaa-dd hh: mm * Caso contrário, a exceção será lançada) * @param date * @param format * @return SimpledateFormat sdf = new SimpleDateFormat (formato); tente {return sdf.parse (data); } catch (parseException ex) {ex.printStackTrace (); lançar a nova RuntimeException (Ex.ToString ()); }} / ** * Determine se uma data pertence a dois períodos * @param time * @param timeRange * @return * / public static boolean isTimeinRange (data de data, data [] timeRange) {return (! Time.before (timerange [0]) &&! Time.after (timeRange [1]);); } / ** * Hora do horário completo até o minuto * * @param fullDateSTest * @return * / public static string getDateTominute (string fullDateSTR) {return fullDateSTest == null? null: (fullDatest.length ()> = datElngth? FullDateSTest.SubString (0, DATELENGLE): FULLDATEST); } /*** Retorne todas as semanas do ano especificado. A lista contém a string [2] String do objeto [0] Data de início da semana e a string [1] é a data de término da semana. * A data está no formato de AAAA-MM-DD na primeira semana de cada ano deve incluir segunda-feira e ter sete dias completos. * Por exemplo: A primeira semana de 2009 começa em 2009-01-05 e as extremidades em 2009-01-11. Qual ano é segunda -feira? Então, que semana está incluída nesta semana? * Por exemplo: 2008-12-29 é segunda-feira, 2009-01-04 é domingo, então esta semana é a última semana de 2008. * * @param ano * formato aaaaaaaaaaaaaaaaaaaaaaa desta List <string []> resultado = new ArrayList <String []> (semanas); int start = 1; int end = 7; for (int i = 1; i <= weeks; i ++) {string [] tempweek = new string [2]; tempweek [0] = getDateForDayOfWeek (ano, eu, começo); TempWeek [1] = getDateForDayofWeek (ano, i, final); resultado.add (TempWeek); } resultado de retorno; } / ** * Calcule o ano anterior e a semana do ano e semana especificados * * @param ano * @param semana * @return @ * / public static int [] getlastyearweek (int ano, int, int) {if (semana <= 0) {lança new ilegalargumentException ("o número semanal não pode ser menor que 1 !!"); } int [] resultado = {semana, ano}; if (semana == 1) {// resultado do ano anterior [1] -= 1; // resultado da semana passada [0] = getweeknofyear (resultado [1]); } else {resultado [0] -= 1; } resultado de retorno; } / ** * Próxima [semana, ano] * * @param ano * @param Semana * @return @ * / public static int [] getNextyearweek (int ano, int week) {if (semana <= 0) {tiro novo ilegalarGumentException ("o número semanal não pode ser menor que 1 !!"); } int [] resultado = {semana, ano}; int weeks = getweekknofyear (ano); if (semana == semanas) {// resultado do próximo ano [1] += 1; // resultado da primeira semana [0] = 1; } else {resultado [0] += 1; } resultado de retorno; } /*** Calcule quantas semanas existem em um ano especificado. (começa na segunda -feira) * * @param ano * @return @ */ public static int getweeknofyear (ano final int) {return getweekknofyear (ano, calendário.monday); } /*** Calcule quantas semanas existem em um ano especificado. * * @param ano * aaaa * @return @ */ public static int getweeknofyear (último ano int, int fildayofweek) {// Há pelo menos 52 semanas a cada ano e até 53 semanas. int minweeks = 52; int maxweeks = 53; int resultado = minweeks; int sindex = 4; String date = getDateFordayofWeek (ano, MaxWeeks, FirstdayofWeek); // Para determinar se o ano corresponde, se corresponde, significa que existem 53 semanas. if (date.substring (0, sindex) .equals (ano)) {resultado = maxweeks; } resultado de retorno; } public static int getweeksofweeKeear (ano final int) {calendário cal = calendar.getInstance (); cal.setFirstdayofWeek (calendário.Monday); cal.setminimaldaysinfirstweek (WEED_DAYS); cal.set (calendário.year, ano); return cal.getweeksinweekeyear (); } /** * Get the date corresponding to the day of the week of the specified year yyyy-MM-dd (starting from Monday) * * @param year * @param weekOfYear * @param dayOfWeek * @return yyyy-MM-dd Date in format @ */ public static String getDateForDayOfWeek(int year, int weekOfYear, int dayOfWeek) { return getDateForDayOfWeek(year, semané, Dayofweek, calendário.Monday); } /** * Obtenha a data correspondente ao dia da semana do ano especificado sim-mm-dd e especifique o dia da semana para calcular o primeiro dia da semana (FirstdayOfWeek) * * @param ano * @param weekofyear * @param Dayofweek * @param First First First Firstweek * especificar formato */ public static string getDateFordayofWeek (ano int, int weekofyear, int DayOfWeek, int FirstdayofWeek) {calendário cal = calendar.getInstance (); cal.setFirstdayOfWeek (FirstdayofWeek); cal.set (calendar.day_of_week, DayOfWeek); cal.setminimaldaysinfirstweek (WEED_DAYS); cal.set (calendário.year, ano); cal.set (calendar.week_of_year, semana de ano); retornar formatDateToString (cal.gettime (), date_format_ymd); } / ** * Obtenha a data especificada da semana * * @param dateTime * @throws parseException * @ * / public static int getweekofdate (string dateTime) lança parseException {calendar cal = calendar.getInstance (); cal.setFirstdayofWeek (calendário.Monday); cal.setminimaldaysinfirstweek (WEED_DAYS); Data data = formatStringTodate (DATETIME, DATE_FORMAT_YMD); cal.setTime (data); return cal.get (calendar.day_of_week); } /** * Calculate all dates in a certain week of a certain year (from Monday to the first day of the week) * * @param yearNum * @param weekNum * @return @ */ public static List<String> getWeekDays(int yearNum, int weekNum) { return getWeekDays(yearNum, weekNum, Calendar.MONDAY); } / ** * Calcule todas as datas em uma determinada semana de um determinado ano (sete dias) * * @param ENNUM * @param weekNum * @return yyyy-mm-dd Format Date List * / public static list <string> getWeekdays = Ano, int, Int WeekOfyear, int FirstdayoFeek) {List <String> Dates = Dates = ANS = ANO, Int WeekOfyear, int FirstDayofeek) {List <String> Dates = Dates = Dates = ANS = Int WeekOfyear, int FirstDayoFeek) {List <String> Dates = Dates =; int DayofWeek = FirstdayofWeek; para (int i = 0; i <week_days; i ++) {dates.add (getDateForDayOfWeek (ano, semanéfio, ano, DayOfWeek ++, FirstDayOfWeek)); } datas de retorno; } / ** * Obtenha as informações do ano e da semana da data de destino para a semana anterior, nesta semana ou na próxima semana * * @param Querydate * tempo de entrada * @param weekoffset * -1: semana passada 0: Esta semana 1: na próxima semana * @param FirstdayofWeek * que dia da semana é o primeiro dia * SemanOffset, int FirstDayOfWeek) lança parseException {date date = formatStringTodate (querydate, date_format_ymd); Calendário calendário = calendário.getInstance (); calendário.setTime (data); calendário.setFirstdayOfWeek (FirstdayofWeek); calendar.setminimaldaysinfirstweek (WEED_DAYS); int ano = calendar.getweekeyear (); int semana = calendar.get (calendar.week_of_year); int [] resultado = {semana, ano}; switch (semanaffset) {case 1: resultado = getNextyearweek (ano, semana); quebrar; caso -1: resultado = getlastyearweek (ano, semana); quebrar; Padrão: quebra; } resultado de retorno; } / ** * Calcule o número de dias por dois dias * * @param startDate * Data de início String * @param enddate * Data de término String * @RETURN * @throws parseException * / public static int getDaysBetween (string startDate, string enddate) lança parseException {int DayGap = 0; if (startDate! = null && startdate.length ()> 0 && enddate! = null && enddate.length ()> 0) {date end = formatStringTodate (enddate, date_format_ymd); Data start = formatStringTodate (startDate, date_format_ymd); Daygap = GetDaysBetween (Start, End); } retorno do dia do dia; } private static int getDaysBetween (data startDate, data enddate) {return (int) ((enddate.gettime () - startdate.gettime ()) /one_day_mills); } / ** * Calcule a diferença no número de dias entre duas datas * @param startDate * @param enddate * @return * / public static int getDaysGapofdates (data startDate, data enddate) {int date = 0; if (startDate! = null && enddate! = null) {date = getDaysBetween (startDate, enddate); } data de retorno; } / ** * Calcule a lacuna do ano entre duas datas * * @param FirstDate * @param SecondDate * @return * / public static int getyearGapofdates (date firstDate, date SecondDate) {if (FirstDate == null || SecondDate == null) {return 0; } Calendário helpCalendar = calendar.getInstance (); HelpCalendar.setTime (FirstDate); Int FirstYear = helpCalendar.get (calendário.year); helpCalendar.setTime (segundoDate); int secondyear = helpCalendar.get (calendário.year); retornar segundo ano - primeiro ano; } / ** * Calcule a lacuna do mês entre duas datas * * @param FirstDate * @param SecondDate * @return * / public static int getMonthGapofdates (Data FirstDate, Date SecondDate) {if (FirstDate == NULL || SecondDate == NULL) {Return 0; } return (int) ((SecondDate.getTime () - FirstDate.getTime ()) / One_Day_Mills / 30); } / ** * Calcule se a data atual está incluída * * @param datys * @return * / public static boolean isContaiCurrent (list <string> datas) {sinalizador booleano = false; SimpledateFormat fmt = new SimpleDateFormat (date_format_ymd); Data data = new Date (); String datestr = fmt.format (data); for (int i = 0; i <dates.size (); i ++) {if (datest.equals (dates.get (i))) {flag = true; }} retornar sinalizador; } / ** * Calcule a data da rainha do tempo a partir da data * * @param date * @param hora * @return * @throws parseException * / public static string getCalCulatulateToString (string startdate, int time) lança parseException {string resultDate = null; if (startDate! = null && startDate.length ()> 0) {date date = formatStringTodate (startDate, date_format_ymd); Calendário c = calendário.getInstance (); C.setTime (data); c.set (calendar.day_of_year, time); DATE = C.GetTime (); resultadodate = formatDateToString (data, date_format_ymd); } retornar resultDate; } / ** * Obtenha a semana do ano em que a data especificada é calculada a partir de uma determinada data * * @param data * @param admitdate * @return * @throws parseException * @ * / public static int [] getyearandweeks (date string, string admitdate) lança parseexception {calendar c = calendar.get.glein; c.setTime (formatStringTodate (Admitdate, date_format_ymd)); int time = c.get (calendar.day_of_week); retornar getweekandyear (data, 0, hora); } / ** * Obtenha a data especificada Refdate, todas as datas da semana antes ou depois * @param refdate * data de referência * @param weekoffset * -1: Na semana passada 0: esta semana 1: próxima semana * @param startDate * @ThException refdate, int weekoffset, string startdate) lança parseexception {// startdate como o primeiro dia da semana calendário c = calendar.getInstance (); c.setTime (formatStringTodate (startDate, date_format_ymd)); int primeiro diaofWeek = c.get (calendar.day_of_week); // obtenha a semana correspondente int [] weekandyear = getweekandyear (refdate, weekoffset, primeiro diafWeek); // Obtenha todas as datas da semana correspondente retorna GetWeekdays (WeekandYear [1], WeekandYear [0], FirstdayofWeek); } / ** * Obtenha o intervalo de tempo de acordo com o ponto de tempo * * @param horas * @return * / public static list <string []> gettimePointsbyhour (int [] horas) {list <string []> hourpoints = new ArrayList <string [] (); String sbstart = ": 00: 00"; String sbend = ": 59: 59"; for (int i = 0; i <hours.length; i ++) {string [] times = new String [2]; horários [0] = horas [i] + sbstart; tempos [1] = (horas [(i + 1 + horas.length) % horas.length] - 1) + sbend; hourpoints.add (Times); } Horários de retorno; } / ** * Aumente ou diminua o número de dias de acordo com a data especificada * * @param data * @param valor * @return * / public Data estática addDays (data de data, int) {return add (data, calendar.day_of_month, valor); } / ** * Aumente ou diminua o número de acordo com a data especificada, digite * * @param data * @param calendarfield * @param valor * @return * / public static date add (data de data, int calendarfield, Int) {if (date == null) {throw ilegalArgutumentException ("a data não deve ser null; } Calendário c = calendário.getInstance (); C.setTime (data); c.Add (calendarfield, quantidade); retornar c.gettime (); } / ** * Obtenha o tempo máximo da data da data atual 2014-12-21 23:59:59 * @return * / public Data estática getCurDateWithMaxTime () {calendário c = calendar.getInstance (); c.set (calendário.hour_of_day, 23); C.set (calendário.Minute, 59); C.set (calendário.second, 59); retornar c.gettime (); } / ** * Obtenha o horário mínimo da data da data atual2014-12-21 00:00:00 * @return * / public static date getCurdateWithMintime () {calendário c = calendar.getInstance (); c.set (calendar.hour_of_day, 0); c.set (calendário.Minute, 0); c.set (calendário.second, 0); c.set (calendário.millisEcond, 0); retornar c.gettime (); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.