code: def __deserialize_datetime(self, payload, obj_type):
          # type: (str, Union[T, str]) -> Any
          
          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__))
docs: 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`