Maneira mais rápida de saber se uma string é uma data válida

Eu estou apoiando uma biblioteca comum no trabalho que executa muitas verificações de uma determinada string para ver se é uma data válida. A API Java, a biblioteca commons-lang e a JodaTime têm métodos que podem analisar uma string e transformá-la em uma data para que você saiba se é realmente uma data válida ou não, mas eu esperava que houvesse uma maneira de fazer a validação sem realmente criar um objeto de data (ou DateTime como é o caso da biblioteca JodaTime). Por exemplo, aqui está um simples exemplo de código:

public boolean isValidDate(String dateString) {
    SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
    try {
        df.parse(dateString);
        return true;
    } catch (ParseException e) {
        return false;
    }
}

Isso só parece um desperdício para mim, estamos jogando fora o objeto resultante. Dos meus benchmarks, cerca de 5% do nosso tempo nesta biblioteca comum é gasto na validação de datas. Eu estou esperando que eu esteja sentindo falta de uma API óbvia. Qualquer sugestão seria ótimo!

ATUALIZAR

Suponha que podemos sempre usar o mesmo formato de data em todos os momentos (provavelmente yyyyMMdd). Eu pensei em usar um regex também, mas então ele precisaria estar ciente do número de dias em cada mês, anos bissextos, etc ...

Resultados

Analisou uma data 10 milhões de vezes

Using Java's SimpleDateFormat: ~32 seconds 
Using commons-lang DateUtils.parseDate: ~32 seconds
Using JodaTime's DateTimeFormatter: ~3.5 seconds 
Using the pure code/math solution by Slanec: ~0.8 seconds 
Using precomputed results by Slanec and dfb (minus filling cache): ~0.2 seconds

Houve algumas respostas muito criativas, eu agradeço! Eu acho que agora eu só preciso decidir quanta flexibilidade eu preciso do que eu quero que o código se pareça. Eu vou dizer que a resposta do dfb está correta porque foi puramente o mais rápido que foi minhas perguntas originais. Obrigado!

questionAnswers(8)

yourAnswerToTheQuestion