public function getISO8601($options = 5)
    {
        if (($options & self::ISO_EXTENDED) === self::ISO_EXTENDED) {
            $format = self::DF_ISO_8601_EXTENDED;
        } else {
            $format = self::DF_ISO_8601_BASIC;
        }

        if (($options & self::ISO_MICROTIME) === self::ISO_MICROTIME) {
            $format .= '.SSSS';
        }

        $date = $this->format($format);

        if (($options & self::ISO_TIME_ZONE) === self::ISO_TIME_ZONE) {
            $date .= $this->getFormattedOffsetById($format);
        }

        return $date;
    }