def __deserialize_datetime(self, payload, obj_type):
        # type: (str, Union[T, str]) -> Any
        """Deserialize datetime instance in ISO8601 format to
        date/datetime object.

        :param payload: data to be deserialized in ISO8601 format
        :type payload: str
        :param obj_type: primitive datatype str
        :type obj_type: Union[object, str]
        :return: deserialized primitive datatype object
        :rtype: object
        :raises: :py:class:`ask_sdk_core.exceptions.SerializationException`
        """
        obj_cast = cast(Any, obj_type)
        try:
            from dateutil.parser import parse
            parsed_datetime = parse(payload)
            if obj_type is date:
                return parsed_datetime.date()
            else:
                return parsed_datetime
        except ImportError:
            return payload
        except ValueError:
            raise SerializationException(
                "Failed to parse {} into '{}' object".format(
                    payload, obj_cast.__name__))
Deserialize datetime instance in ISO8601 format to
        date/datetime object.

        :param payload: data to be deserialized in ISO8601 format
        :type payload: str
        :param obj_type: primitive datatype str
        :type obj_type: Union[object, str]
        :return: deserialized primitive datatype object
        :rtype: object
        :raises: :py:class:`ask_sdk_core.exceptions.SerializationException`