< prev index next >
src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java
Print this page
rev 17010 : 8178889: Move creation of AbstractChronology comparators to call sites
Reviewed-by: tbd
@@ -64,10 +64,11 @@
import static java.time.temporal.ChronoField.EPOCH_DAY;
import static java.time.temporal.ChronoField.NANO_OF_DAY;
import static java.time.temporal.ChronoUnit.FOREVER;
import static java.time.temporal.ChronoUnit.NANOS;
+import java.io.Serializable;
import java.time.DateTimeException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
@@ -134,11 +135,17 @@
* @see #isAfter
* @see #isBefore
* @see #isEqual
*/
static Comparator<ChronoLocalDateTime<?>> timeLineOrder() {
- return AbstractChronology.DATE_TIME_ORDER;
+ return (Comparator<ChronoLocalDateTime<? extends ChronoLocalDate>> & Serializable) (dateTime1, dateTime2) -> {
+ int cmp = Long.compare(dateTime1.toLocalDate().toEpochDay(), dateTime2.toLocalDate().toEpochDay());
+ if (cmp == 0) {
+ cmp = Long.compare(dateTime1.toLocalTime().toNanoOfDay(), dateTime2.toLocalTime().toNanoOfDay());
+ }
+ return cmp;
+ };
}
//-----------------------------------------------------------------------
/**
* Obtains an instance of {@code ChronoLocalDateTime} from a temporal object.
< prev index next >