protected function outputNotNull($value): string
    {
        if (is_string($value)) {
            return $value;

        } elseif (is_int($value)) {
            $formats = $this->getFormats(self::DEFAULT_STYLE);
            return date($formats[0], $value);

        } elseif ($value instanceof \DateTime) {
            $formats = $this->getFormats(self::DEFAULT_STYLE);
            return $value->format($formats[0]);
        }

        throw TypeConversionException::unexpectedValue(
            $this,
            'output',
            'a string, an integer or an instance of DateTime',
            $value
        );
    }