2017-05-05 5 views
-1

Gibt es eine bequeme Methode, um eine YearMonth mit einer LocalDate (oder einer anderen zeitlichen) in Java 8 Zeit API zu vergleichen?Java 8 Time API: Vergleichen von JahrMonat mit LocalDate?

Ich frage mich, wie so viele Methoden TemporalAccessors unterstützen, ob ich nur auf den falschen Platz geschaut habe und dass es tatsächlich so eine Bequemlichkeitsmethode gibt. Alle Hinweise werden sehr geschätzt.

Um die Frage klarer zu machen: Wenn ich vergleiche YearMonth-LocalDate Ich bin nur daran interessiert, im Vergleich von month und year (der gemeinsame Nenner von beiden).

Antwort

1

Einen zeitlichen in den gemeinsamen Nenner Typ, der für den Vergleich benötigt wird, scheint recht praktisch zu sein, z.B. eine YearMonth mit einem LocalDate der LocalDate zum Vergleichen Erste, der einen YearMonth umgewandelt wird:

LocalDate someDate = ... 
YearMonth someMonth = ... 

YearMonth.from(someDate).equals(someMonth) 

// or compareTo if required 

mehr darüber nachdachte, macht es wahrscheinlich Sinn, dass es keine universelle compare -Methode ist wie der Vergleich spezifische bleibt. Es gibt keine Garantie, dass jemand nur den gemeinsamen Nenner von beiden vergleichen möchte.

+4

und Warum haben Sie hinzugefügt, um diese Erklärung als Antwort? Sie sollten dies in der Erklärung Ihrer Frage hinzufügen. –

+0

weil es eine Antwort auf die Frage ist. – Roland

+0

@NeerajJain, es passiert, dass jemand ihre eigene Frage innerhalb von Minuten nach der Frage beantwortet, ich weiß nicht warum, aber es wird allgemein als OK angesehen, zu tun. –

0

YearMonth und LocalDate sind nicht direkt vergleichbar, nur weil LocalDate Mitglieder für Tage enthält, die nicht in der Klasse yearMont definiert sind.

können Sie schreiben Ihre eigenen

private boolean checkTemporal(YearMonth yM, LocalDate lD) { 

    return yM.getMonthValue() == lD.getMonthValue() && yM.getYear() == lD.getYear(); 
} 
Verwandte Themen