Código de implementação um:
importar java.text.simpledEformat; importar java.util.calendar; importar java.util.date; classe pública DateTeTutil {public static void main (string [] args) lança exceção {simledEformat sdf = new SimpledEformatat ("yyyyyyMmd"; String str = "20110823"; Data dt = sdf.parse (str); Calendário Rightnow = calendar.getInstance (); rightnow.setTime (dt); rightnow.add (calendário.Year, -1); // Data menos 1 ano RightNow.add (calendar.month, 3); // Data mais 3 meses Rightnow.add (calendar.day_of_year, 10); // data mais 10 dias Data DT1 = Righttime.gettime (); String rest = sdf.format (dt1); System.out.println (REST); }}Nota: No método Add do objeto do calendário, o segundo parâmetro é um número positivo que significa "add" e um número negativo que significa "subtração".
Código 2: a data de Java adiciona e subtrai o número de dias
Código da classe de teste:
importar java.text.simpledateFormat; importar java.util.date; classe pública DateTest {public static void main (string [] arg) {date agora = new Date (); addandsubtractDaysByGetTime (agora, -5); addandsubtractDaysByGetTime (agora, 5); addandsubtractDaysByCalendar (agora, -5); addandsubtractDaysByCalendar (agora, 5); } Data estática pública AdandSubtractDaysByGetTime (data DATETIME/*Data pendente*/, int n/*adição e subtração dias*/) {// Formato de data simpledEformat df = new SimpleDateFormat ("aaaaaa-mm-dd "); SimpledateFormat DD = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); System.out.println (df.format (new Date (DateTime.getTime () + N * 24 * 60 * 60 * 1000l))); //System.out.println(dd.Format(new Data (DateTime.getTime () + N * 24 * 60 * 60 * 1000l))); // Observe que você deve se converter em um tipo longo aqui, caso contrário, o excesso de intervalo ocorrerá quando n exceder 25, para que você não possa obter o valor de data desejado Retornar nova data (DateTime.getTime () + N * 24 * 60 * 60 * 1000L); } Data estática pública AdandSubtractDaysByCalendar (Data DateTime/*Data pendente*/, int n/*Dias adicionais e de subtração*/) {// Formato de data simpledEformat df = novo SimpleDateFormat ("AAYYYY-MM-DD"); SimpledateFormat DD = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); java.util.calendar calstart = java.util.calendar.getInstance (); calstart.setTime (DateTime); calstart.add (java.util.calendar.day_of_week, n); System.out.println (df.format (calstart.gettime ())); //System.out.println (dd.format (calstart.gettime ())); return calstart.gettime (); }} Resultados em execução:
2014-10-06
2014-10-16
2014-10-06
2014-10-16
Código três:
Verifique as informações on -line e adicione algumas classes de ferramentas sobre a classe de data que você resumiu.
pacote com.data.utils; importar java.text.simpledateFormat; importar java.util.calendar; importar java.util.date; public class dateformat { / ***, quantos anos é a data reduzida* / public estatic string uNUsyear (string) (strings) excepção {simpledAformat Data dt = sdf.parse (str); Calendário Rightnow = calendar.getInstance (); rightnow.setTime (dt); rightnow.add (calendário.year, -1); // data menos 1 ano Data dt1 = rightnow.gettime (); String rest = sdf.format (dt1); retornar restos; } / *** Quantos anos adicionar até a data* / public static string dateaddyear (string str) lança a exceção {SimpleDateFormat sdf = new SimpleDateFormat ("yyyymm"); Data dt = sdf.parse (str); Calendário Rightnow = calendar.getInstance (); rightnow.setTime (dt); rightnow.add (calendário.year, 1); // data mais 1 ano data dt1 = rightnow.gettime (); String rest = sdf.format (dt1); retornar restos; } / *** Quantos meses a data reduz* / public static string dateminusmonth (string str) lança a exceção {simpledateFormat sdf = new SimpleDateFormat ("yyyymm"); Data dt = sdf.parse (str); // gerar o calendário de string rightnow = calendar.getInstance (); rightnow.setTime (dt); // Defina a hora deste calendário usando a data fornecida. rightnow.add (calendar.month, -1); // data menos 1 mês data dt1 = rightnow.gettime (); // retorna um objeto de data que representa o valor do tempo do calendário. String rest = sdf.format (dt1); // formate a data fornecida como uma string de data/hora e adicione o resultado ao stringbuffer fornecido. retornar restos; } / ** * Quantos meses a data adiciona * / public static string dateaddmonth (string str) lança a exceção {simpledateFormat sdf = new SimpleDateFormat ("yyyymm"); Data dt = sdf.parse (str); Calendário Rightnow = calendar.getInstance (); rightnow.setTime (dt); rightnow.add (calendar.month, 1); // Adicione 3 meses até a data // rightnow.add (calendar.day_of_year, 10); // Data mais 10 dias Data dt1 = rightnow.gettime (); String rest = sdf.format (dt1); retornar restos; } / ** * Obtenha STR para o primeiro mês do ano e mês atual * @param str * 201505 * @return 201501 * @throws exceção * / public static string dateonemoMh (string str) {str = str.substring (0, str.length () - 2); str = str + "01"; retornar str; } /*** Calcule quantos meses o mês selecionado é a partir de janeiro. * @param str 201509 * @return 9 */ public static int dateDistancemonth (string str) {int i = intoger.parseint (str); int j = integer.parseint (dateFormat.dateonemoth (str)); System.out.println (i - j); retornar i - j + 1; } / ** * Obtenha a diferença de horário entre duas vezes, precisa para milissegundos * @param str * @return * / public static string timedifference (start long, longa end) {long entre = end - start; dia longo = entre / (24 * 60 * 60 * 1000); hora longa = (entre / (60 * 60 * 1000) - dia * 24); longo min = ((entre / (60 * 1000)) - dia * 24 * 60 - hora * 60); long s = (entre / 1000 - dia * 24 * 60 * 60 - hora * 60 - min * 60); MS longo = (entre - dia * 24 * 60 * 60 * 1000 - hora * 60 * 60 * 60 * 1000 - min * 60 * 1000 - S * 1000); String timedifference = dia + "dia" + hora + "hora" + min + "minuto" + s + "segundos" + ms + "milissegundos"; retorno timedifference; }} / ** * Obtenha o horário de início de 24 horas, uma semana e um mês * * @param timeInterval *: Day_time_interval week_time_interval Month_time_interval * @return "yyyy-mm-dd hh: mm: ss" * / public static string getstime (int timeVal) {calendário calendário; SimpledateFormat sdf = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); if (Day_time_interval == timeInterval) {// Obtenha o tempo de início de 24 horas cal.set (calendar.hour_of_day, 0); cal.set (calendário.Minute, 0); cal.set (calendário.second, 0); String startTime = sdf.format (cal.gettime ()); Retornar StartTime; } else if (week_time_interval == timeInterval) {int weekday = cal.get (calendar.day_of_week) - 1; cal.add (calendário.date, -Weekday); cal.set (calendar.hour_of_day, 0); cal.set (calendário.Minute, 0); cal.set (calendário.second, 0); String startTime = sdf.format (cal.gettime ()); Retornar StartTime; } else if (me mês_time_interval == timeInterval) {int diafmonthmin = cal.getActualMinimum (calendar.day_of_month); // c.add (calendário.date, -Dayofmonth); cal.set (calendário.date, diafmonthmin); cal.set (calendar.hour_of_day, 0); cal.set (calendário.Minute, 0); cal.set (calendário.second, 0); String startTime = sdf.format (cal.gettime ()); Retornar StartTime; } retornar nulo; } / ** * Obtenha o horário final de 24 horas, uma semana e um mês * * @param timeInterval *: Day_time_interval week_time_interval Month_time_interval * @return "yyyy-mm-dd hh: mm: ss" * / public stratic gettime (int timeinterval) {calendário calon = calend. cal.setTimeZone (TimeZone.GetTimeZone ("GMT+8")); SimpledateFormat sdf = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); if (dia_time_interval == timeInterval) {cal.set (calendar.hour_of_day, 23); cal.set (12, 59); cal.set (13, 59); longa data = cal.getTimeInmillis (); String endtime = sdf.format (nova data (data)); retornar o fim do tempo; } else if (week_time_interval == timeInterval) {int weekday = cal.get (calendar.day_of_week) - 1; cal.add (calendário.date, -Weekday); cal.add (calendário.date, 6); cal.set (calendar.hour_of_day, 23); cal.set (12, 59); cal.set (13, 59); longa data = cal.getTimeInmillis (); String endtime = sdf.format (nova data (data)); retornar o fim do tempo; } else if (me mês_time_interval == timeInterval) {int Dayofmonthmax = cal.getActualMaximum (calendar.day_of_month); cal.set (calendar.date, diafmonthmax); cal.set (calendar.hour_of_day, 23); cal.set (calendário.Minute, 59); cal.set (calendário.second, 59); String endtime = sdf.format (cal.gettime ()); retornar o fim do tempo; } retornar nulo; } /*** Determine se o DATESTS está entre o início e o fim. Start e fim podem ser nulosaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa de smddhhmmsss Data data = nulo; Data startDate = null; Data enddate = null; SimpledateFormat sdf = null; // Juiz Data do formato if (14 == DATest.Length ()) {sdf = new SimpleDateFormat ("yyymmddhhmmss"); } else if (8 == DATest.Length ()) {sdf = new SimpleDateFormat ("yyyymmdd"); } mais retorna false; tente {// altere a data do juiz Data Data = sdf.parse (DATESTR); } catch (parseException e) {log.error (e, e); } if ((start == null) && (end! = null)) {try {enddate = sdf.parse (end); } catch (parseException ex1) {log.error (ex1, ex1); } if ((date! = null) && (enddate! = null)) // Verifique os parâmetros para {if (date.compareto (enddate) <= 0) isdateright = true; }} else if ((start! = null) && (end == null)) {try {startDate = sdf.parse (start); } catch (parseException ex1) {log.error (ex1, ex1); } if ((date! = null) && (startDate! = null)) {if (date.compareto (startDate)> = 0) isdateright = true; }} else if ((start! = null) && (end! = null)) {try {startDate = sdf.parse (start); enddate = sdf.parse (end); } catch (parseException ex2) {System.out.println (ex2.toString ()); } if ((startDate! = null) && (date! = null) && (enddate! = null)) {if ((date.compareto (startDate)> = 0) && (date.compareto (enddate) <= 0)) isdateright = true; }} retorna isdateright; } / ** * Para determinar se o DATEST está entre o início e o fim, o início e o final podem estar em formato longo nulo * * @author você.xu * @date 19 de agosto de 2015 às 15:12:35 * @param DATESTR * @param start * @param end * @return * / public static boolean checkV (stringv (stringTSTestr, string, string, string, string, string, string, string, string, string, string; longa data = -1; long from date = -1; TODATE longo = -1; Data = java.lang.long.parselong (DATEST); if ((start == null) && (end == null)) {isdateright = true; } else if ((start == null) && (end! = null)) {try {Todate = java.lang.long.parselong (end); } catch (númeroFormatexception nfe) {log.error (nfe, nfe); } if (date <= Todate) {isdateright = true; }} else if ((start! = null) && (end == null)) {try {fromdate = java.lang.long.parselong (start); } catch (númeroFormatexception nfe) {log.error (nfe, nfe); } if (date> = Fromdate) {isdateright = true; }} else if ((start! = null) && (end! = null)) {try {Todate = java.lang.long.parselong (end); FromDate = java.lang.long.parselong (start); } catch (númeroFormatexception nfe) {log.error (nfe, nfe); } if ((date <= Todate) && (date> = Fromdate)) {isdateright = true; }} retorna isdateright; }Estes são usados até agora e você pode adicioná -los a qualquer momento. Existem ferramentas de tempo simples e convenientes. Espero aprender com você, e vou apontá -los nos comentários. Obrigado! ! !