docs: public Object convert( String value, TypeLiteral<?> toType )
      {
          Exception firstEx = null;
          for ( String pattern : this.patterns )
          {
              try
              {
                  DateFormat format;
                  if ( this.locale != null )
                  {
                      format = new SimpleDateFormat( pattern, this.locale );
                  }
                  else
                  {
                      format = new SimpleDateFormat( pattern );
                  }
                  if ( this.timeZone != null )
                  {
                      format.setTimeZone( this.timeZone );
                  }
                  format.setLenient( false );
                  Date date = this.parse( value, format );
  
                  if ( Calendar.class == toType.getType() )
                  {
                      Calendar calendar = null;
                      if ( this.locale == null && this.timeZone == null )
                      {
                          calendar = Calendar.getInstance();
                      }
                      else if ( this.locale == null )
                      {
                          calendar = Calendar.getInstance( this.timeZone );
                      }
                      else if ( this.timeZone == null )
                      {
                          calendar = Calendar.getInstance( this.locale );
                      }
                      else
                      {
                          calendar = Calendar.getInstance( this.timeZone, this.locale );
                      }
                      calendar.setTime( date );
                      calendar.setLenient( false );
                      return calendar;
                  }
  
                  return date;
              }
              catch ( Exception ex )
              {
                  if ( firstEx == null )
                  {
                      firstEx = ex;
                  }
              }
          }
  
          throw new IllegalArgumentException( "Error converting '" + value + "' using  patterns " + this.patterns,
                                              firstEx );
      }