public function until(Temporal $endExclusive, TemporalUnit $unit) { $end = $this->getChronology()->zonedDateTime($endExclusive); if ($unit instanceof ChronoUnit) { $end = $end->withZoneSameInstant($this->offset); return $this->dateTime->until($end->toLocalDateTime(), $unit); } return $unit->between($this, $end); }