assertUtc($currentTime); } public function now(): DateTimeImmutable { return $this->currentTime; } public function setTime(DateTimeImmutable $newTime): void { $this->assertUtc($newTime); $this->currentTime = $newTime; } private function assertUtc(DateTimeImmutable $time): void { if ($time->getTimezone()->getOffset($time) !== 0) { throw new InvalidArgumentException( 'FakeClock requires a DateTimeImmutable in UTC.' ); } } }