tipo poner para ingresar hora guardar fechas fecha ejemplo dato comparar como date compare java-8

poner - Cómo comparar instancias LocalDate Java 8



localdate to date java (3)

Estoy escribiendo una aplicación que necesita ser bastante precisa en las fechas y me pregunto cómo puedo comparar las instancias de LocalDate ... por ahora estaba usando algo como:

LocalDate localdate1 = LocalDate().now(); LocalDate localdate2 = someService.getSomeDate(); localdate1.equals(localdate2);

Pero noté que mi aplicación me está dando algunos resultados confusos, y creo que es debido a la comparación de fechas.

Estoy pensando en obtener el tiempo de 1970 ''en mucho tiempo y comparar esos dos, pero debo ser más fácil, estoy seguro de eso


Creo que este fragmento también será útil en una situación en la que la comparación de fechas abarca más de dos entradas.

static final int COMPARE_EARLIEST = 0; static final int COMPARE_MOST_RECENT = 1; public LocalDate getTargetDate(List<LocalDate> datesList, int comparatorType) { LocalDate refDate = null; switch(comparatorType) { case COMPARE_EARLIEST: //returns the most earliest of the date entries refDate = (LocalDate) datesList.stream().min(Comparator.comparing(item -> item.toDateTimeAtCurrentTime())).get(); break; case COMPARE_MOST_RECENT: //returns the most recent of the date entries refDate = (LocalDate) datesList.stream().max(Comparator.comparing(item -> item.toDateTimeAtCurrentTime())).get(); break; } return refDate; }


Usar equals() LocalDate anula equals:

int compareTo0(LocalDate otherDate) { int cmp = (year - otherDate.year); if (cmp == 0) { cmp = (month - otherDate.month); if (cmp == 0) { cmp = (day - otherDate.day); } } return cmp; }

Si no está satisfecho con el resultado de equals() , puede usar los métodos predefinidos de LocalDate .

Observe que todos esos métodos están utilizando el compareTo0() y simplemente verifique el valor de cmp . si aún obtiene resultados extraños (que no debería), adjunte un ejemplo de entrada y salida


LocalDate ld ....; LocalDateTime ldtime ...; ld.isEqual(LocalDate.from(ldtime));