                  parsed = datetime.datetime.strptime(value, format)
              except (ValueError, TypeError):
                  pass
              else:
                  return parsed.date()
  
          date_input_formats = '; '.join(self.input_formats)
          msg = self.error_messages['invalid'] % get_readable_date_format(date_input_formats)
          raise ValidationError(msg)
  
 
</s> remove             try:
                parsed = datetime.datetime.strptime(value, format)
            except (ValueError, TypeError):
                pass
 </s> add             if format.lower() == ISO8601:
                try:
                    parsed = parse_date(value)
                except (ValueError, TypeError):
                    pass
                else:
                    if parsed is not None:
                        return parsed </s> remove                 return parsed
 </s> add                 try:
                    parsed = datetime.datetime.strptime(value, format)
                except (ValueError, TypeError):
                    pass
                else:
                    return parsed </s> remove                 return parsed.time()
 </s> add                 try:
                    parsed = datetime.datetime.strptime(value, format)
                except (ValueError, TypeError):
                    pass
                else:
                    return parsed.time() </s> remove         date_input_formats = '; '.join(self.input_formats)
 </s> add         date_input_formats = '; '.join(self.input_formats).replace(ISO8601, 'YYYY-MM-DD') </s> remove             try:
                parsed = datetime.datetime.strptime(value, format)
            except (ValueError, TypeError):
                pass
 </s> add             if format.lower() == ISO8601:
                try:
                    parsed = parse_datetime(value)
                except (ValueError, TypeError):
                    pass
                else:
                    if parsed is not None:
                        return parsed
                try:
                    parsed = datetime.datetime.strptime(value, format)
                except (ValueError, TypeError):
                    pass
                else:
                    return parsed.date()
                  parsed = datetime.datetime.strptime(value, format)
              except (ValueError, TypeError):
                  pass
              else:
                try:
                    parsed = datetime.datetime.strptime(value, format)
                except (ValueError, TypeError):
                    pass
                else:
                    return parsed.date()
  
          date_input_formats = '; '.join(self.input_formats)
          msg = self.error_messages['invalid'] % get_readable_date_format(date_input_formats)
          raise ValidationError(msg)
  
keep keep keep keep replace keep keep keep keep keep
 Add new ISO8601 setting + integration 
rest_framework/fields.py