Durante el desarrollo de Java, inevitablemente estaba enredado con el tipo de fecha. Iba a resumir las operaciones relacionadas con la fecha que el proyecto usaba a menudo. JDK versión 1.7. Si puede ayudarlo a ahorrar unos minutos para levantarse y moverse y hacer una taza de café, sería genial. Jeje. Por supuesto, solo proporciono soluciones viables y no se garantiza que sean las mejores prácticas, y las discusiones son bienvenidas.
1. Valor de fecha
En la era del antiguo JDK, había muchos códigos que usaban la clase java.util.date en términos de valores de fecha. Sin embargo, dado que la clase de fecha no es conveniente para lograr la internacionalización, se recomienda utilizar la clase java.util.calendar para el procesamiento de tiempo y fecha a partir de JDK1.1. No presentaré las operaciones de la clase de fecha aquí. Vamos directamente al tema y cómo usar la clase de calendario para obtener la fecha y hora actuales.
Dado que el método de constructor de calendario es modificado por protegido, crearemos un objeto calendario a través del método GetInstance proporcionado en la API.
// Hay múltiples métodos sobrecargados para crear objetos de calendario calendario ahora = calendar.getInstance (); // predeterminado // especificar la zona horaria y la región, o solo puede ingresar uno de los parámetros calendario ahora = calendar.getInstance (zona horaria, localidad);
Luego podemos obtener los varios parámetros de tiempo actuales a través del objeto.
int año = ahora.get (calendar.year); //, año actual int mes = ahora.get (calendar.month) +; //, mes actual, agregue int day = ahora.get (calendar.date); //, fecha de día actual Fecha = ahora.gettime (); // Obtenga directamente una fecha de fecha de tipo
Para obtener otros tipos de datos de tiempo, solo necesita modificar los parámetros en ahora.get (). Además de los tres parámetros anteriores, otros parámetros de uso común son los siguientes:
• calendario.day_of_month: fecha, igual que calendario.date
• Calendario.
• calendario.hour_of_day: el número de horas en un sistema de 24 horas
• Calendario. Minuto: minuto
• Calendario. Segundo: segundos
• calendario.day_of_week: semanal
Además de obtener datos de tiempo, también podemos establecer varios parámetros de tiempo a través del objeto calendario.
// Establezca solo el valor de un cierto campo // conjunto de void final público (campo int, int value) ahora.set (calendar.year,); // establece año, mes, día, hora, mes, día, hora, minuto, segundo // set de vacío final público (int año, int mes, int fecha [, int horafday, int mind, int segundo]) ahora.set (,, [,,,]); // Regístrese en una fecha de fecha Fecha directamente // Public Final Void Settim (fecha de fecha) ahora.set (fecha);
Aviso:
• Cuando se establece el parámetro de tiempo, se recalcularán otros valores relevantes. Por ejemplo, cuando establezca la fecha en 11, los cambios correspondientes se realizarán en la semana.
• El mes que obtiene es más 1. El mes real es el indicado.
• En la clase de calendario, el domingo es 1, el lunes es 2, y así sucesivamente.
2. Conversión de fechas
Después de charlar sobre la fecha, hablemos sobre la conversión de la fecha. La conversión es generalmente la conversión mutua entre la fecha de tipo fecha y la cadena de tipo de cadena. Principalmente uso java.text.simpledateFormat para la operación de conversión.
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); Pruebe {// fecha en el calendario calendario de calendario = calendario.getInstance (); Fecha fecha = calendar.gettime (); Cadena dataTringParse = sdf.format (fecha); // String hasta la fecha en cadena DataString DataString = "- ::"; Date dateParse = sdf.parse (dataTring); } catch (ParseException e) {E.PrintStackTrace (); }Aviso:
• El formato de conversión debe especificarse al crear un objeto SimpleDateFormat.
• El formato de conversión es sensible al caso, yyyy representa el año, MM representa el mes, DD representa la fecha, HH representa la hora en 2011, HH representa la hora en 1011, MM representa el minuto y SS representa segundos.
3. Adición de fecha y resta
En términos generales, haremos dos adiciones y operaciones de resta en fechas:
• Basado en una fecha, calcule las fechas antes/después, antes/después, o antes/después, o antes y después de otras unidades de tiempo.
// Calcular calendario ahora = calendar.getInstance (); ahora.Add (calendario.Year,); // Después del año de la hora actual ahora.Add (calendar.year, -); // antes del año de la hora actual // Calcular calendario especialDate = calendar.getInstance (); SpecialDate.setTime (fecha); // Tenga en cuenta que el valor de SpecialDate se cambia a una fecha específica SpecialDate.Add (Calendar.Year,); // Después del año del tiempo específico especialdate.add (calendar.year, -); // antes del año del tiempo específico
Tenga en cuenta que se utiliza el método Agregar del objeto calendario. Puede cambiar el calendario.
• Calcule el intervalo entre dos veces, por ejemplo, cuántos días hay ahora el 1 de enero de 2016.
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); Cadena dataTring = "- ::"; Calendario calendario = calendario.getInstance (); long NowDate = calendar.gettime (). gettime (); //Date.gettime () Get MilliseCond Date Try {long specialDate = sdf.parse (dataTring) .gettime (); long betweendate = (SpecialDate - NowDate) / ( * * *); // Calcule con cuántos días de diferencia, divídalo mediante la fórmula de conversión de milisegundos a days System.out.print (Betweendate); } catch (ParseException e) {E.PrintStackTrace (); } 4. Comparación de fechas
Mirando a través de mi código anterior, descubrí que cada vez que realice una operación de comparación de fechas, primero convertiré la fecha en una cadena en el formato "A yyyymmdd", luego convertiré la cadena en un valor y luego compararé el tamaño del valor. Jaja, es una operación de comparación simple, pero se necesitan más de una docena de líneas de código para escribir, lo cual es un poco insoportable. Ahora tenemos que hablar sobre la postura de comparación de fecha correcta.
Generalmente hay dos métodos para la comparación de fechas, que son comunes para java.util.date o java.util.calendar. Uno es comparar con el método antes () a través de After (), y el otro es el método Compareto () a través del método ComparisonTo ().
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); string dataString_01 = "2016-01-01 11:11:11"; String dataString_02 = "2016-01-02 11:11:11"; intent {fecha_01 = sdf.parse (fecheString_01); Fecha date_02 = sdf.parse (dataTring_02); System.out.println (date_01.before (date_02)); // Verdadero, cuando date_01 es menor que date_02 cuando es verdadero, de lo contrario es falso sistema.out.println (date_02.After (date_01)); // Verdadero, cuando date_02 es mayor que date_01, es verdadero, de lo contrario es falso sistema.out.println (date_01.compareto (date_02)); // -1, cuando date_01 es menor que date_02, es -1 system.out.println (date_02.compareto (date_01)); // 1, cuando date_02 es mayor que date_01, es 1 sistema.out.println (date_02.compareto (date_02)); // 0, cuando dos fechas son iguales, es 0} Catch (ParseException e) {E.PrintStacktrace ();}Lo anterior es la descripción completa de las operaciones de fecha común (valor, conversión, adición y resta, comparación) en Java que se le presentó en este artículo. Espero que te guste.