static function override($now): void
    {
        if ($now instanceof \DateTimeInterface) {
            $now = $now->getTimestamp() + ($now->format('u') / 1e6); // extract timestamp with microseconds
        } elseif (!is_int($now) && !is_float($now)) {
            throw new \InvalidArgumentException(sprintf(
                'Expected int, float or an instance of DateTimeInterface, but got %s',
                is_object($now) ? get_class($now) : gettype($now)
            ));
        }

        self::$now = $now;
    }