Mientras el formato sea correcto, simplemente compare las cadenas directamente, lo mismo es cierto durante segundos.
String S1 = "2003-12-12 11:30:24"; String S2 = "2004-04-01 13:31:40"; int res = s1.compareto (S2);
Encuentra la diferencia de fecha
SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); Fecha de inicio = DF.Parse ("2004-01-02 11:30:24"); Fin final de fecha = df.parse ("2004-03-26 13:31:40"); largo entre = (end.gettime ()-begin.gettime ())/1000; // dividirse por 1000 es convertir a segundos int day = entre/(24*3600); int hora = entre%(24*3600)/3600; int mind = entre%3600/60; int segundo = entre%60; Las clases de hora y fecha a menudo se usan, por lo que los métodos y atributos de fecha comúnmente utilizados se resumen de la siguiente manera para facilitar a todos los que los encuentren.
1. Calcule el número máximo de días en un mes determinado
Tiempo calendario = calendario.getInstance (); Time.Clear (); TIME.SET (calendario.YAR, año); Time.set (calendario.month, i-1); // Tenga en cuenta que el objeto calendario predeterminado al 0 de enero int día = TIME.GetActualMaximum (calendario.day_of_month); // El número de días en este mes
Nota: Antes de usar el método establecido, es mejor borrarlo primero, de lo contrario, se heredará mucha información del tiempo actual del sistema.
2. Conversión de calendario y fecha
(1) Calendario convertido hasta la fecha
Calendario cal = calendario.getInstance (); Fecha fecha = cal.gettime ();
(2) Convertir la fecha al calendario
Fecha fecha = nueva fecha (); Calendario cal = calendario.getInstance (); Cal.settime (fecha);
3. Formateo de la fecha y hora de salida
Fecha fecha = nueva fecha (); SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); System.out.println (df.format (fecha)); 4. Calcule qué semana del año
(1) Calcule qué semana del año al día es
Calendario cal = calendario.getInstance (); Cal.set (Calendar.Year, 2006); Cal.set (calendario. Month, 9); cal.set (calendario.day_of_month, 3); int weekno = cal.get (calendar.week_of_year);
(2) Calcule qué semana del año es
SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); Calendario cal = calendario.getInstance (); Cal.set (Calendar.Year, 2006); cal.set (calendar.week_of_year, 1); cal.set (calendar.day_of_week, calendar.monday); System.out.println (df.format (cal.gettime ()));Producción:
2006-01-02
5. Uso de add () y roll ()
(1) método add ()
SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); Calendario cal = calendario.getInstance (); Cal.set (Calendar.Year, 2006); Cal.set (calendario. Month, 9); cal.set (calendario.day_of_month, 3); cal.add (calendario.date, -4); Fecha fecha = cal.gettime (); System.out.println (df.format (fecha)); cal.add (calendario.date, 4); fecha = cal.gettime (); System.out.println (df.format (fecha)); Producción:
2006-08-30
2006-10-03
(2) Método de rollo
Cal.set (Calendar.Year, 2006); Cal.set (calendario. Month, 9); cal.set (calendario.day_of_month, 3); cal.Roll (calendario.date, -4); fecha = cal.gettime (); System.out.println (df.format (fecha)); cal.Roll (calendario.date, 4); fecha = cal.gettime (); System.out.println (df.format (fecha));
Producción:
2006-10-29
2006-10-03
Se puede ver que el método Roll () se produce dentro de este mes, y el método add () generalmente se usa;
6. Calcule el número de días entre dos tiempos arbitrarios
(1) pasar al objeto calendario
/*** // ** Calcule el número de días entre dos veces* @param Hora de inicio del día de inicio* @Param Endday Time* @return*/public int dos veces respectivamente largas SL = Startday.GetTimeInmillis (); Long el = endday.gettimeinmillis (); Long ei = el-sl; // Calcule los días de intervalo basados en el retorno de los milisegundos (int) (ei/(1000*60*60*24));}
(2) pasar al objeto de fecha
/*** // ** Calcule el número de días entre dos veces* @param Startday Hora de inicio* @param Endday Time* @return*/public int sl = startday.gettime (); Long el = endday.gettime (); Long ei = el-sl; // Calcule los días de intervalo basados en el retorno de los milisegundos (int) (ei/(1000*60*60*24));}
Del mismo modo, puede usar el mismo método para calcular el número de horas, minutos, segundos, etc. Nota: El método anterior se calcula completamente en función del tiempo, y a veces no es satisfactorio, como:
startday = "2006-10-11 20:00:00" endday = "2006-10-12 8:00:00"
El resultado del cálculo es 0, pero podemos hacer que el resultado del cálculo se convierta en 1. En este momento, podemos usar el siguiente método:
Antes de pasar el argumento, establezca el tiempo de fin de día primero, como:
endday.set (calendar.hour_of_day, 23); Endday.set (calendario. Minute, 59); Endday.set (calendario. Segundo, 59); endday.set (calendario.milliseCond, 59);
Si lo pasa, entonces el resultado será como lo deseamos. Sin embargo, si encuentra problemático el método anterior, puede consultar el siguiente método:
(3) mejorar el método para calcular con precisión el número de días separados
public int getdaysbetween (calendario D1, calendario d2) ... {if (d1.after (d2)) ... {// fechas de intercambio para que D1 sea inicio y d2 es final java.util.calendar swap = d1; d1 = d2; d2 = swap;} int d1.get (calendario.day_of_year); int y2 = d2s. d1.add (calendar.year, 1);} while (d1.get (calendar.year)! = y2);} días de retorno;}Obtenga el tiempo actual del sistema:
public static string getSystemTime () {date date = new Date (); SimpleDateFormat df = new SimpleDateFormat ("yyyyy-mm-dd hh: mm: ss"); return df.format (date);} // Convertir la cadena en un tipo de tiempo (la cadena puede ser cualquier tipo, siempre que sea el mismo que el Format en SimpledateFormat) javext. sdf = new java.text.simpledateFormat ("m/dd/yyyy hh: mm: ss a", java.util.locale.us); java.util.date d = sdf.parse ("5/13/2003 10:31:37 am"); SimpledateFormat = new NEWSE Hh: mm: ss "); string mdateTime1 = formatter.Format (d); // calendar cal = calendar.getInstance (); // simpledateFormat formatter = new SimpleDateFormat (" yyyyy-mm-dd hh: mm: ss "); SimpleDateFormat Formatter = new SimpleDateFormat ("yyyyy-mm-dd hh: mm: ss gedf w w w a ef"); string mdateTime = formatter.format (cal.getTime ()); // hace 1 año fecha java.util.date myDate = new java.util.date ();; Long myTime = (myDate.getTime ()/1000) -60*60*24*365; mydate.setTime (mytime*1000); string mdate = formatter.format (mydate); // Date de mañana MyDate = nuevo java.util.date (); mytime = (mydate.gettime ()/1000)+60*60*24; mydate.settime (mytime*1000); mdate = formatter.format (mydate); // el número de días entre dos veces la forma de formación myformatter = new SimpledAformat ("yyyyyyyyyy-mm-dd"); myFormatter.Parse ("2003-05-1"); java.util.date myDate = myFormatter.Parse ("1899-12-30"); largo día = (date.getTime ()-myDate.getTime ())/(24*60*60*1000); // Agregar media hora simplificada format de formato = new SimpledateFormat ("" yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy hh: mm: ss "); java.util.date date1 = format.parse (" 2002-02-28 23:16:00 "); tiempo largo = (date1.getTime ()/1000)+60*30; date1.setTime (tiempo*1000); cadena myDate1 = formatter.format (date1); // año, mes, semana, date simpledeFormat formatter2 = new SimpleDateFormat ("yyyyy-mm fe"); java.util.date date2 = formatter2.párse Viernes "); SimpleDateFormat Formatter3 = new SimpleDateFormat (" yyyy-mm-dd "); string myDate2 = format3.Format (date2); // Encuentre el día de la semana myDate = myFormatter.Parse (" 2001-1-1-1 "); SimpleDateFormat Formatter4 = new SimpledateFormat (" e "); String MyDate3 = Formather4.Format (MyDate);En el desarrollo de aplicaciones web, necesitamos realizar varias conversiones diferentes hasta la fecha en nuestro programa para diferentes tipos de fecha de base de datos. Si los datos de la base de datos correspondientes son el tipo de oráculo de fecha, es decir, solo el año, el mes y el día, puede optar por usar el tipo Java.sql.Date. Si los datos de la base de datos correspondientes son el tipo de fecha y hora de la base de datos MSSQLServer, es decir, el año, mes, día, hora, minuto y segundo, seleccione el tipo Java.SQL.TIMESTAMP
Puede usar DateFormat para definir el formato de hora y fecha y convertirlo en una cadena
paquete personal.Jessica; import java.util.date; import java.util.calendar; import java.sql.timestamp; import java.text.dateformat; import java.text.simpledateFormat; import java.util.locale; class Detetestest {/***El método pasa la fecha de la cita de un TIMESTOMT (TIMESTUMP (TIMESTUMP (TIMESTUMTUMP (CLASS java.sql.timestamp) *@param cadena de datos que debe convertirse en timestamp *@return datateMe timestamp */public final java.sql.timestamp string2time (string dataString) lanza java.text.ParseException {dateFormat dateFormat; dateFormat = newimpledAneformat ("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy kk: mm: ss.sss ", locale.english); // establecer formato // dateFormat = new SimpleDateFormat (" yyyy-mm-dd kk: mm: ss ", locale.english); dateFormat.setLenient (falso); java.util.date timedate = dateFormat.Parse (dataString); // utilice java.sql.timestamp datetime = new java.sql.timestamp (° Timedate.GetTime ()); // TIMEMPMOPE, Timedate.GetTime () Devuelve un retorno de larga duración;}/}/}/}/} Methode El tipo de cadena tipo en una fecha (java.sql.date) *@param DataString La cadena que debe convertirse hasta la fecha *@return datateMe fecha */public final static java.sql.date string2Date (string dataSting) lanza java.lang.exception {dateFormat dateformat; dateFormat; Lugare.english); dateFormat.SetLenient (false); java.util.date timedate = dateFormat.Parse (dataTring); // utilizar java.sql.date dateTime = new java.sql.date (Timedate.GetTime ()); // type de retorno dataTime;} public static static main (stats) Date (); // nota: en este lugar, da.gettime () obtiene un sistema de larga valor.out.println (da.gettime ()); // Convertir de fecha a la marca de tiempo // el primer método: usar nueva marca de tiempo de tiempo (Long) timestamp t = nueva marca de tiempo (nueva fecha (). Gettime ()); System.out.println (t); // El segundo método: use Timestamp (int Year, Int Mon, int Date, int Hour, int mind, int segundo, int nano) Timestamp tt = new Timestamp (calendar.getInstance (). Get (calendar.year) - 1900, calendar.getInstance (). Calendar.date), calendar.getInstance (). Get (calendar.hour), calendar.getInstance (). Get (calendar.minute), calendar.getInstance (). Get (calendar.second), 0); system.println (tt); try {string stodate = "2005-8-18"; java.sql.date stotimestamp = "2005-8-18 14: 21: 12.123"; // standle cadena utilizada para convertir a java.sql.timestamp date1 = string2Date (stodate); Timestamp date2 = string2Time (stotimestamp); system.println ("date:"+date1.Tostring (); Convertir a java.sql.timestamp date date1 = string2Date (stotimestamp); system.out.println ("date:"+date2.ToString ()); // standle cadena utilizada para convertir a java.sql.timestamp date2 = string2Time (stotimestamp); system.out.println ("timestamp:"+date2.ToString ()); // Standle Tostack} Catch (Exception e) {E.PrintStackTRace ();}}}Aquí hay un ejemplo:
Código Java
prueba de paquete; import java.text.dateFormat; import java.text.parseException; import java.text.simpledateFormat; import java.util.calendar; import java.util.date; a [] = = s.split (""); boolean flg = verdadero; if (! (Integer.ParseInt (a [0])> = 1950 && Integer.ParseInt (A [0]) SimpledateFormat ("aa yyyy-mm-dd"); ret = df.format (df.parse (s)). Igual Hashtable (); fest.put ("01-01", "Día de Año Nuevo"); fest.put ("02-14", "Día de San Valentín"); fest.put ("03-12", "Día del Arbor"); fest.put ("03-15", "Día del consumidor"); "04-01", "Día de abril"); Fest.put ("04 55", "", ",", ",", ",", ". Festival "); fest.put (" 05-01 "," Día del trabajo "); fest.put (" 06-01 "," Día del niño "); fest.put (" 07-01 "," centrar el día de la fiesta "); fest.put (" 08-01 "," Día del ejército ");" 09-10 "," Día del maestro "); Día "); fest.put (" 12-25 "," Navidad "); if (fest.containskey (a [1])) {return fest.get (a [1]);} else {return" sin vacaciones ";} cadena pública xingzuo (date s) {calendar cal = calendar.getInstance (); cal.settime (s); string xingzUo no" no "; día = cal.get (calendar.day_of_year); if ((cal.get (calendar.year)%4 == 0) && (cal.get (calendar.year)%100! = 0) || (cal.get (calendar.year)%400 == 0)) {if ((día> = 1 && day <= 19) || (día> = 357 && day <= 366)) {xingzuo = "scorpio";} else if (day> = 20 && day <= 49) {xingzuo = "acuarius";} else if (día> = 50 && Day <= 80) && day <= 110) {xingzuo = "aries";} else if (day> = 111 && day <= 141) {xingzuo = "taurus";} else if (day> = 142 && day <= 173) {xingzuo = "gemini";} else if (day> = & day <= 203) if (day> = 204 && day <= 235) {xingzuo = "leo";} else if (day> = 236 && day <= 266) {xingzuo = "virgo";} else if (day> = 267 && day <= 296) {xingzuo = "libra";} el más if (day> = 297 && day <= 326) {xingzuo = "scorpio";} else if (day> = 327 && day <= 356) {xingzuo = "sauvignon";}} else {if ((day> = 1 && day <= 19) || (día> = 357 && day <= 366)) {xingzuo = "; if (day> = 20 && day <= 48) {xingzuo = "acuarius";} else if (day> = 49 && day <= 79) {xingzuo = "pisces";} else if (day> = 80 && day <= 109) {xingzuo = "Aries";} if (day> = 110 && Day <= 140) "Tauro";} else if (día> = 141 && day <= 172) {xingzuo = "gemini";} else if (day> = 173 && day <= 202) {xingzuo = "cáncer";} else if (day> = 203 && day <= 234) {xingzuo = "leo";} el más (día (día> = 235 && day <= 265) {xingzuo = "virgo";} else if (day> = 266 && day <= 295) {xingzuo = "libra";} else if (day> = 296 && day <= 325) {xingzuo = "scorpio";} más if (day> = 326 && day <= 355) "Saucy";}} return xingzUo;} public fechin parsedate (string s) {simpledateFormat bartDateFormat = new SimpleDateFormat ("yyyyy-mm-dd"); try {date date3 = null;}} public static void main (string [] args) {calendar cal = calendar.getInstance (); test2 test2 = new test2 (); string date1 = jOptionPane.showinputDialog ("Por favor, ingrese la fecha, el formato es 2000-10-15"); while (! (test2.checkdate (date1) && test2.isdate (date1))) {date1 = joptionPane.showInputDialog ("Ingrese la fecha, el formato es como 2000-10-15");} SimpledAdAcEformat BartDateFormat1 = new SimpledAnformat ("Yyyyy, MM, DD, DD,"); new SimpleDateFormat ("yyyyy-mm-dd"); date date2 = test2.parsedate (date1); string festinfo = (string) test2.dateinfo (date1); system.out.println (bartDateFormat1.format (date2)+","+festinfo+","+test2.xingzuo (date2); día = jOptionPane.ShowInputDialog ("Ingrese la información de la fecha para la consulta n días"); Cal.setTime (date2); cal.add (calendar.date, integer.parseint (día)); cadena date5 = bartdateFormat2.Format (cal.getTime ()); festinfo = (string) test2.dateInfo (date5); system.out.println (bartdateformat1.format (cal.gettime ())+","+festinfo+","+test2.xingzuo (cal.GetTime ());}}Resumir
Lo anterior es toda la explicación detallada del uso de tiempo y fecha de uso de Java y Código de consulta en este artículo. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!