Hay muchas clases directamente relacionadas con la fecha en Java. Los más utilizados son la fecha y el calendario bajo el paquete Java.Util. Cuando necesite usar el formato, también usará java.text.simpledateFormat.
En primer lugar, permítanme quejarme de que la fecha y el calendario son realmente incómodos de usar. No estaba familiarizado con él cuando lo usé por primera vez, y siempre no podía decir el uso específico y las diferencias entre las clases de fecha y calendario.
Además, el método de conjunto de clase calendario tiene cierta antihumanidad al establecer fechas. Al establecer el mes, siempre debe compensarlo y restar 1. Por ejemplo, si desea establecerlo al 6 de enero de 2018, debe establecerlo en 2018, 0, 6, porque enero está representado por 0 aquí:
Calendario cal = calendar.getInstance (); cal.set (2018, 0, 8);
Por las razones específicas, consulte la respuesta aquí: StackOverflow: ¿Por qué es el mes de enero 0 en el calendario de Java?
De todos modos, no puedo soportarlo. .
Hace unos días, había un requisito simple, que era calcular la edad en función de dos fechas. Revisé Internet y abandoné directamente las clases difíciles de fecha y calendario y utilicé directamente java.time.localdate. Sin más ADO, simplemente suba el código:
import java.time.localdate; public class testLocalDate {public static void main (string [] args) {localdate date1 = localdate.of (2018, 1, 6); Localdate date2 = localdate.of (1991, 1, 3); int age = date2.until (date1) .getyears (); System.out.println ("Eres" + edad + "años de edad"); }}Resultado de salida:
Tienes 27 años.
Las llamadas de conversión mutua ligeramente complejas y abrumadoras entre la fecha y las clases de calendario están abandonadas, y el código también es muy claro. ¿No es muy agradable?
Java.Time es una biblioteca de fecha y hora recientemente introducida en Java 8. Los siguientes métodos están todos en el paquete Java.Time.
Echemos un vistazo a cómo este código calcula la diferencia de tiempo de una manera simple y refrescante:
En primer lugar, LocalDate es una clase inmutable (clase inmutable), por lo que, al igual que la clase de cadena, no necesita nuevo un nuevo objeto para ser utilizado (?)
Luego está el método utilizado por la clase LocalDate para establecer la fecha:
Public estática localdate de (int año, mes, mes, int dayofonth) Public estática local Date de (intane, int mes, int dayofmonth)
Hay tres métodos sobrecargados en total, dos de los cuales se enumeran aquí. La clase del primer mes es un tipo enum que contiene el nombre en inglés del mes, como enero, noviembre, etc.
El segundo es la configuración normal del año, mes y día. ¡La buena noticia es que el mes aquí comienza a partir de 1, lo que significa que ya no necesitas restar 1 manualmente! ! !
El siguiente es el método hasta la clase LocalDate para comparar las fechas:
Período público hasta (cronolocaldato enddateExclusive)
Este método devuelve un objeto de período de tipo.
El período representa un período de intervalos de tiempo que están formados como "2 años, 3 meses, 4 días". El siguiente método Getyears llamado pertenece a la clase de época.
Finalmente, echemos un vistazo a algunos métodos para obtener intervalos de tiempo en la clase de período:
public int getyears () public int getMonths () public int getdays ()
Estos tres métodos se utilizan para obtener el año, mes y día del intervalo de tiempo respectivamente. Sí, es así de simple.
Resumir
Lo anterior es el método de implementación de usar localdate para calcular la edad basada en fechas en Java introducidas por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo.