Este artigo é dividido principalmente em duas partes para processamento de data. Aqui está uma introdução detalhada.
Parte 1: básico do processamento de data
Função da classe de data <br />: a função principal é obter a hora atual e converter a data em um formato padrão
Data data = new Date (); SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); string str = sdf.format (date); system.out.println ("2015-10-16 14:52:52"); Converter string para o tipo de data
String Day = "2014-6-5 10:30:30"; SimpleDateFormat D2 = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); Data Date2 = D2.Parse (dia); System.out.println ("Tu 05 de junho 10:30:30 CST 2014; Aplicativo da classe do calendário
A classe Java.util.Calendar é uma classe abstrata. Você pode obter um objeto de calendário chamando o método getInstance () estático. Este objeto foi inicializado pela data e hora atuais, ou seja, representa o horário atual por padrão.
Calendário c = calendário.getInstance (); int ano = c.get (calendário.year); int mês = c.get (calendário.month) +1; // Obtenha o mês, 0 significa janeiro int dia = c.get (calend.day_of_month); int hour = c.get (calend.hour_of_day); int minuto = c.get (calendário.minute); int segundo = c.get (calendário.SECOND);
Compare os 2 meses com tempo diferente
SimpleDateFormat Format = new SimpleDateFormat ("AAAA-MM-DD HH: MM: SS"); DateTime D1 = new DateTime (format.parse ("2016-10-31 00:00:00"); 00:00:00 ");Parte 2: Classe de ferramenta de processamento de data
pacote com.analysys.website.control; importar java.text.parseException; importar java.text.parsePosition; importar java.text.simpledateFormat; importar java.util.calendar; importar java.util.date; importar java.util.UgreianEndar; importar org.apache.commons.lang.stringutils; importar org.apache.log4j.logger; /** * Classe de ferramenta de processamento de data * @author dylan_xu * @date 11 de março de 2012 * @Modificado por * @Modified Date * @Since Jdk1.6 * @see com.util.dateutil */public ========================================================================== ========================================================================== Logger estático privado = logger.getLogger (dateUtil.class); String estática privada defaultDatePattern = null; string estática privada timepattern = "hh: mm"; calendário estático privado Cale = calendário.getInstance (); public static final string ts_format = dateUtil.getDatePattern () + "hh: mm: ss.s"; / ** Formato da data yyyy-mm string constante*/ string final estática privada me mês_format = "yyyy-mm"; / ** Formato da data yyyy-mm-dd string constant*/ string final estática privada date_format = "yyyy-mm-dd"; / ** Formato de data hh: mm: ss string constante*/ string final estática privada hour_format = "hh: mm: ss"; / ** Formato da data yyyy-mm-dd hh: mm: ss string constante*/ string final estática privada datetime_format = "yyyyy-mm-dd hh: mm: ss"; / ** Início de um dia, minuto e segunda string constante 00:00:00*/ String final estática privada DIAY_BEGIN_STRING_HHMMSSS = "00:00:00"; / ** Início de um dia, minuto e segunda string constante 23:59:59*/ public static final string Day_end_string_hhmms = "23:59:59"; estático privado SimpleDateFormat sdf_date_format = new SimpleDateFormat (date_format); estático privado SimpleDateFormat sdf_hour_format = new SimpleDateFormat (hour_format); estático privado SimpleDateFormat SDF_DATETIME_FORMAT = new SimpleDateFormat (DateTime_Format); // ~ Methods // ==================================================================================================== public DateUtil() { } / ** * Obtenha a data e a hora atuais do servidor, retorne na forma de uma string de data com o formato: AAAA-MM-DD HH: MM: SS * @Author Dylan_Xu * @Date 11 de março de 2012 * @return * / public static string getDateTime () {try {retorn sdf_datEnTime *; } catch (Exceção e) {Logger.debug ("dateUtil.getDateTime ():" + e.getMessage ()); retornar ""; } } /** * Get the current date of the server, return in the form of a date string with the format: yyyy-MM-dd * @author dylan_xu * @date Mar 11, 2012 * @return */ public static String getDate() { try { return sdf_date_format.format(cale.getTime()); } catch (Exceção e) {Logger.debug ("dateUtil.getDate ():" + e.getMessage ()); retornar ""; }} / ** * Obtenha a hora atual do servidor, retorne na forma de uma string de data com o formato: hh: mm: ss * @author dylan_xu * @date 11 de março de 2012 * @return * / public static string gettime () {string temp = ""; tente {temp += sdf_hour_format.format (cale.gettime ()); retornar temp; } catch (Exceção e) {Logger.debug ("dateUtil.gettime ():" + e.getMessage ()); retornar ""; }} / ** * Valor padrão da data de início durante as estatísticas * @author dylan_xu * @date 11 de março de 2012 * @return * / public static string getstartdate () {try {return getyear () + "-01-01"; } catch (Exceção e) {Logger.debug ("dateUtil.getStartDate ():" + e.getMessage ()); retornar ""; }} / * * } catch (Exceção e) {Logger.debug ("dateUtil.getEndDate ():" + e.getMessage ()); retornar ""; }} / ** * Obtenha o ano da data atual do servidor * @author dylan_xu * @date 11 de março de 2012 * @return * / public static string getyear () {try {return string.valueof (cale.get.get (calendar.year)); } catch (Exceção e) {Logger.debug ("dateUtil.getyear ():" + e.getMessage ()); retornar ""; }} / ** * Obtenha o mês da data atual do servidor * @author dylan_xu * @date 11 de março de 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 (Exceção e) {Logger.debug ("dateUtil.getMonth ():" + e.getMessage ()); retornar ""; }} / ** * Obtenha o número de dias no mês atual do servidor * @author dylan_xu * @date 11 de março de 2012 * @return * / public static string getday () {try {return string.valueof (cale.get (calendar.day_of_month)); } catch (Exceção e) {Logger.debug ("dateUtil.getday ():" + e.getMessage ()); retornar ""; }} / ** * Comparação do número de dias entre duas datas * @author dylan_xu * @date 11 de março de 2012 * @param date1 * @param date2 * @return * / public static int getMargin (string date1, string date2) {int margin; tente {parseposição pos = nova parseposição (0); Parseposição pos1 = nova parseposição (0); Data dt1 = sdf_date_format.parse (date1, pos); Data dt2 = sdf_date_format.parse (date2, pos1); long l = dt1.gettime () - dt2.gettime (); margem = (int) (l / (24 * 60 * 60 * 1000)); margem de retorno; } catch (Exceção e) {Logger.debug ("dateutil.getmargin ():" + e.toString ()); retornar 0; }} / ** * Comparação do número de dias em que as duas datas diferem * @author dylan_xu * @date 11 de março de 2012 * @param date1 * @param date2 * @return * / public static duplo getDoublemargin (string date1, string date2) {margem dupla; tente {parseposição pos = nova parseposição (0); Parseposição pos1 = nova parseposição (0); Data dt1 = sdf_dateTime_format.parse (date1, pos); Data dt2 = sdf_dateTime_format.parse (date2, pos1); long l = dt1.gettime () - dt2.gettime (); margem = (l / (24 * 60 * 60 * 1000,00)); margem de retorno; } catch (Exceção e) {Logger.debug ("dateutil.getmargin ():" + e.toString ()); retornar 0; }} / ** * Comparação do número de meses entre as duas datas * @author dylan_xu * @date 11 de março de 2012 * @param date1 * @param date2 * @return * / public static int getMonthmargin (string date1, string date2) {int margin; tente {margin = (Integer.parseint (date2.SubString (0, 4)) - Integer.parseint (date1.substring (0, 4))) * 12; margem += (Integer.parseInt (date2.Substring (4, 7) .Replaceall ("-0", "-"))-Integer.parseint (date1.substring (4, 7) .replaceall ("-0", "-")); margem de retorno; } catch (Exceção e) {Logger.debug ("dateutil.getmargin ():" + e.toString ()); retornar 0; }} / ** * Retorne a data após x dias de data * @author dylan_xu * @date 11 de março de 2012 * @param date * @param i * @return * / public static string addday (string date, int i) {try {GregoriaCalendar gcal = new GregianCalendar (Integeger.Perinte.Perinte.Perant (GregoriaCalendar Gcal = New GregianEndar (IntegegersiMent.Urger.Per.Perinte.Perant (GregoriaNendar Gcal = New GregianEndar (Integegerseinte.Perant. Integer.parseint (date.substring (5, 7)) - 1, Integer.parseint (date.substring (8, 10))); gcal.add (Gregoriancalendar.date, i); retornar sdf_date_format.format (gcal.gettime ()); } catch (Exceção e) {Logger.debug ("dateUtil.addday ():" + e.toString ()); return getDate (); }} / ** * Retorne a data após a data mais x meses * @author dylan_xu * @date 11 de março de 2012 * @param date * @param i * @return * / public static string addmonth (string date, int i) {try {gregoriaNendar gcal = new GregianCalendar ({Try Integer.parseint (date.substring (5, 7)) - 1, Integer.parseint (date.substring (8, 10))); gcal.add (Gregoriancalendar.month, i); retornar sdf_date_format.format (gcal.gettime ()); } catch (Exceção e) {Logger.debug ("dateUtil.addMonth ():" + e.toString ()); return getDate (); }} / ** * Retorne a data após a data mais x anos * @Author dylan_xu * @date 11 de março de 2012 * @param data * @param i * @return * / public static string addyear (string date, int i) {try {GregoriaCalendar gcal = new GregianCalendar (IntrEgerSeger. (GregoriaNendar Gcal = New GregInENDARSO (Intéger. Integer.parseint (date.substring (5, 7)) - 1, Integer.parseint (date.substring (8, 10))); gcal.add (GregorianCalendar.year, i); retornar sdf_date_format.format (gcal.gettime ()); } catch (Exceção e) {Logger.debug ("dateutil.addyear ():" + e.toString ()); retornar ""; }} / ** * Retorne o dia máximo de um determinado mês em um determinado ano * @author dylan_xu * @date 11 de março de 2012 * @param ano * @param mês * @return * / public static int getMaxday (int iyear, int image) {int dia = 0; tente {if (iMonth == 1 || imagem == 3 || imagem == 5 || imagem == 7 || imagem == 8 || imagem == 10 || imagem == 12) {dia = 31; } else if (iMonth == 4 || imagem == 6 || imagem == 9 || imagem == 11) {dia = 30; } else if ((0 == (iyear % 4)) && (0! = (iyear % 100)) || (0 == (iyear % 400))) {dia = 29; } else {dia = 28; } dia de retorno; } catch (Exceção e) {Logger.debug ("dateUtil.getMonthday ():" + e.toString ()); retornar 1; }} / ** * Data do formato * @Author dylan_xu * @date 11 de março de 2012 * @param orgdate * @param tipo * @param span * @return * / @suppresswarnings ("static-access") public string rolldate (string orgdate, int tipo, int span) {{Tryn {Try ") int ieear, imagem, 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 (orgdate.substring (0, 4)); temp = orgdate.substring (4); } IPOs = temp.indexof (Seperater); if (IPOs> 0) {imagem = Integer.parseint (temp.substring (0, IPOs)); temp = temp.substring (IPOS + 1); } else {ipos = temp.indexof (Seperater); if (IPOs> 0) {imagem = Integer.parseint (temp.substring (0, IPOs)); temp = temp.substring (IPOS + 1); } else {image = integer.parseint (temp.substring (0, 2)); temp = temp.substring (2); } imagem--; if (iMonth <0 || imagem> 11) {imagem = 0; } iday = Integer.parseint (temp); if (dia <1 || iday> 31) iday = 1; Calendário orgcale = calendar.getInstance (); orgcale.set (iyear, imagem, iday); temp = this.rolldate (orgcale, tipo, span); retornar temp; } catch (Exceção e) {return ""; }} public static string rolldate (calendário cal, int tipo, int span) {try {string temp = ""; Calendário Rolcale; rolcale = cal; rolcale.add (tipo, span); temp = sdf_date_format.format (rolcale.gettime ()); retornar temp; } catch (Exceção e) {return ""; }} / ** * Retorne o formato da data padrão * @Author dylan_xu * @date 11 de março de 2012 * @return * / public static sincronizado string getDatePattern () {defaultDatePattern = "yyyyy-mm-dd"; retornar defaultDatePattern; } / ** * Substitua a data especificada em uma string no formato e saída padrão, como: AAAA-MM-DD * @Author Dylan_Xu * @Date 11 de março de 2012 * @param adate * @return * / public static string getdate (date adate) {simpledformat df = Null; String returnValue = ""; if (adate! = null) {df = new SimpleDateFormat (getDatePattern ()); returnValue = df.Format (Adate); } return (returnValue); } / ** * Obtenha a sequência de horários para a data fornecida, o formato é o formato de tempo padrão atual * @author dylan_xu * @date 11 de março de 2012 * @param thetime * @return * / public static string gettimeNow (data tetime) {return getDateTime (timePattern, thime); } / ** * Obtenha o objeto do calendário do calendário para o horário atual * @author dylan_xu * @date 11 de março de 2012 * @return * @throws parseException * / calendário público gettoday () lança parseException {date Today = new Date (); SimpledateFormat df = new SimpleDateFormat (getDatePattern ()); String Todayasstring = df.format (hoje); Calendário cal = new Gregoriancalendar (); cal.setTime (convertStringTodate (Todayasstring)); retornar cal; } / ** * Converta a classe de data em um formulário de sequência no formato especificado * @author dylan_xu * @date 11 de março de 2012 * @param amask * @param adate * @return * / public static string string getDateTime (string amask, date adate) {simpledateformat df = Null; String returnValue = ""; if (adate == null) {Logger.error ("Adate é nulo!"); } else {df = new SimpleDateFormat (amask); returnValue = df.Format (Adate); } return (returnValue); } / ** * Converta a data especificada para o formulário da sequência no formato padrão * @Author Dylan_Xu * @Date 11 de março de 2012 * @param Adate * @return * / public static string final convertDateToString (date adate) {return getDateTime (getDateTattern (), Adate); } / ** * Converta a string de data para o tipo de data no formato especificado * @author dylan_xu * @date 11 de março de 2012 * @param amask o formato de data especificado, como: yyyyy-mm-dd * @param strdate a data a ser convertida * @return * @ThSexException * / public stratate a data a ser convertida * @return * ParseException {simledateFormat df = null; Data data = nulo; df = novo SimpleDateFormat (amask); if (logger.isdebugenabled ()) {Logger.debug ("convertendo '" + strdate + "' até hoje com máscara '" + amask + "'"); } tente {date = df.parse (strdate); } catch (parseException pe) {logger.error ("parseexception:" + pe); jogar pe; } retornar (data); } / ** * Converta a string de data até o tipo de data no formato padrão * @author dylan_xu * @date 11 de março de 2012 * @param strdate * @return * @throws parseException * / public static convertStringTodate (strdate) lança parseexception {date adate = Null; tente {if (logger.isdebugenabled ()) {Logger.debug ("Data de conversão com padrão:" + getDatePattern ()); } adate = convertStringTodate (getDatePattern (), strdate); } catch (parseException pe) {logger.error ("não pôde converter '" + strdate + "' em uma data, exceção de arremesso"); lançar uma nova parseException (pe.getMessage (), pe.GetRORROROFFSET ()); } retornar anúncio; } / ** * Retorne uma string de data de Java Simples Type * @author dylan_xu * @date 11 de março de 2012 * @return * / public static string getSImpledEformat () {SimpleDateFormat formatter = new SimpleDateFormat (); String ndateTime = formatter.format (new Date ()); Retornar NdateTime; }/** * Comparação da data no formato da string especificada com a hora atual * @Author Dylan * @Date 17 de fevereiro de 2012 * @param strdate o tempo necessário para comparar * @return * <p> * code * <ul> * <li> -1 Hora atual <ComPare </li> * <li> 0 0,0) </ul> * </p> */public static int compareTocurtime (string strdate) {if (stringUtils.isblank (strdate)) {return -1; } Data curtime = Cale.getTime (); String strcurtime = null; tente {strcurtime = sdf_dateTime_format.format (curta -time); } catch (Exceção e) {if (logger.isdebugenabled ()) {Logger.debug ("[não poderia formatar '" + strdate + "' para uma data, de lançamento:" + e.getLocalizedMessage () + "]"); }} if (stringutils.isnotblank (strcurtime)) {return strcurtime.compareto (strdate); } retornar -1; } / ** * Adicione o tempo mínimo à data da consulta * * @param Tipo de destino Data * @param Data do parâmetro de conversão * @return * / @suppresswarnings ("deprecação") public static date addStartTime (date param) {date date = param; tente {date.Sethours (0); date.SetMinutes (0); DATE.SETSECONDS (0); data de retorno; } catch (Exceção ex) {Data de retorno; }} / ** * Adicione o tempo máximo à data da consulta * * @param Tipo de destino Data * @param Data do parâmetro de conversão * @RETURN * / @SUPLESTWARNINGS ("depreciação") Public Data estática Adendtime (data param) {date date = param; tente {date.Sethours (23); date.setMinutes (59); DATE.SETSECONDS (0); data de retorno; } catch (Exceção ex) {Data de retorno; }} / *** Retorne o número de dias no ano atual do sistema** @param mês* @return Total Days No mês especificado* / @suppresswarnings ("depreciação") public static string getMonthlastday (int mês) {data date = new Date (); int [] [] dia = {{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 ano = date.getyear () + 1900; if (ano % 4 == 0 && ano 100! = 0 || ano % 400 == 0) {dia de retorno [1] [mês] + ""; } else {dia de retorno [0] [mês] + ""; }} / ** * Retorne o número de dias no mês especificado no ano especificado * * @param ano * @param mês * @return Total Days No mês especificado * / public static string getmonthday (int year, int mês) {int [] 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 (ano % 4 == 0 && ano 100! = 0 || ano % 400 == 0) {dia de retorno [1] [mês] + ""; } else {dia de retorno [0] [mês] + ""; }} / ** * Julie se é um ano normal ou um ano bissexto * @Author dylan_xu * @date 11 de março de 2012 * @param ano * @return * / public static boolean isleapyear (int ano) {if (ano 4 == 0 && ano 100! } else {return false; }} / ** * Obtenha o selo do dia da hora atual * @Author dylan_xu * @date 11 de março de 2012 * @return * / @suppresswarnings ("deprecação") public static string gettimestamp () {date date = cale.gettime (); String timestamp = "" + (date.getyear () + 1900) + date.getMonth () + date.getDate () + date.getminutes () + date.getSeconds () + date.gettime (); retornar timestamp; } / ** * Obtenha o carimbo do dia do horário especificado * * @return * / @suppresswarnings ("depreciação") public static string gettimestamp (data) {string timestamp = "" + (date.getyear ()) + 1900) + date.getMonth () + date.getDate () +.getyear ()) + 1900) + date.getMonth () + date.getDate () +.getyear ()) + 1900) + DATEMOMOME () +. retornar timestamp; } public static void main (string [] args) {System.out.println (getyear () + "|" + getMonth () + "|" + getDate ()); }}O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.