static function dateTimeImmutable(?\DateTimeZone $timezone = null): \DateTimeImmutable
    {
        if (self::$now !== null) {
            $now = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', self::$now));
            $now = $now->setTimezone($timezone ?? new \DateTimeZone(date_default_timezone_get()));

            return $now;
        }

        return new \DateTimeImmutable('now', $timezone);
    }