original_string: public function reverseTransform($rfc3339)
      {
          if (!\is_string($rfc3339)) {
              throw new TransformationFailedException('Expected a string.');
          }
  
          if ('' === $rfc3339) {
              return;
          }
  
          if (!preg_match('/^(\d{4})-(\d{2})-(\d{2})T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))$/', $rfc3339, $matches)) {
              throw new TransformationFailedException(sprintf('The date "%s" is not a valid date.', $rfc3339));
          }
  
          try {
              $dateTime = new \DateTime($rfc3339);
          } catch (\Exception $e) {
              throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
          }
  
          if ($this->inputTimezone !== $dateTime->getTimezone()->getName()) {
              $dateTime->setTimezone(new \DateTimeZone($this->inputTimezone));
          }
  
          if (!checkdate($matches[2], $matches[3], $matches[1])) {
              throw new TransformationFailedException(sprintf('The date "%s-%s-%s" is not a valid date.', $matches[1], $matches[2], $matches[3]));
          }
  
          return $dateTime;
      }
code: public function reverseTransform($rfc3339)
      {
          if (!\is_string($rfc3339)) {
              throw new TransformationFailedException('Expected a string.');
          }
  
          if ('' === $rfc3339) {
              return;
          }
  
          if (!preg_match('/^(\d{4})-(\d{2})-(\d{2})T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))$/', $rfc3339, $matches)) {
              throw new TransformationFailedException(sprintf('The date "%s" is not a valid date.', $rfc3339));
          }
  
          try {
              $dateTime = new \DateTime($rfc3339);
          } catch (\Exception $e) {
              throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
          }
  
          if ($this->inputTimezone !== $dateTime->getTimezone()->getName()) {
              $dateTime->setTimezone(new \DateTimeZone($this->inputTimezone));
          }
  
          if (!checkdate($matches[2], $matches[3], $matches[1])) {
              throw new TransformationFailedException(sprintf('The date "%s-%s-%s" is not a valid date.', $matches[1], $matches[2], $matches[3]));
          }
  
          return $dateTime;
      }
code_tokens: public function reverseTransform ( $ rfc3339 ) { if ( ! \ is_string ( $ rfc3339 ) ) { throw new TransformationFailedException ( 'Expected a string.' ) ; } if ( '' === $ rfc3339 ) { return ; } if ( ! preg_match ( '/^(\d{4})-(\d{2})-(\d{2})T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))$/' , $ rfc3339 , $ matches ) ) { throw new TransformationFailedException ( sprintf ( 'The date "%s" is not a valid date.' , $ rfc3339 ) ) ; } try { $ dateTime = new \ DateTime ( $ rfc3339 ) ; } catch ( \ Exception $ e ) { throw new TransformationFailedException ( $ e -> getMessage ( ) , $ e -> getCode ( ) , $ e ) ; } if ( $ this -> inputTimezone !== $ dateTime -> getTimezone ( ) -> getName ( ) ) { $ dateTime -> setTimezone ( new \ DateTimeZone ( $ this -> inputTimezone ) ) ; } if ( ! checkdate ( $ matches [ 2 ] , $ matches [ 3 ] , $ matches [ 1 ] ) ) { throw new TransformationFailedException ( sprintf ( 'The date "%s-%s-%s" is not a valid date.' , $ matches [ 1 ] , $ matches [ 2 ] , $ matches [ 3 ] ) ) ; } return $ dateTime ; }
docstring: Transforms a formatted string following RFC 3339 into a normalized date.
  
  @param string $rfc3339 Formatted string
  
  @return \DateTime Normalized date
  
  @throws TransformationFailedException If the given value is not a string,
  if the value could not be transformed
docstring_tokens: Transforms a formatted string following RFC 3339 into a normalized date .