Problème avec SimpleDateFormat de millisecondes

J'ai essayé de cet extrait de code et le résultat est très surprenant. Pourquoi le résultat est différent à partir de l'entrée? J'ai fait une erreur ou est-il un problème avec SimpleDateFormat?

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS");
try {
    Date date = sdf.parse("2013-04-18-19.01.33.080");
    System.out.println(sdf.format(date)); //output: 2012-04-18-19.01.33.80
} catch (ParseException e) {
    e.printStackTrace();
}

EDIT: En fait, j'ai vérifié mon code et je l'ai écrit yyyy-MM-dd-HH.mm.ss.S au lieu de yyyy-MM-dd-HH.mm.ss.SSS. C'était une erreur stupide. Merci à tous pour vos réponses.

J'ai testé votre extrait de code et il fonctionne très bien pour moi à l'aide de la version 1.6. dd est correct pour le jour du mois.
Mec, j'obtiens exactement le même résultat que l'entrée. Fonctionne pas mal. Ce qui signifie que vos paramètres d'entrée sont corrects aussi. Pouvez-vous poster le code complet de la classe juste pour plus de clarté ? Prière d'indiquer également votre version de java, comme mentionné par Steven, Merci,
ideone.com/FDSlWN
Le code affiché fonctionne aussi pour moi. Je suis en utilisant le JDK7 sur Windows 7.
It was a stupid mistake - et c'est pourquoi vous devez poster un SSCCE avec chaque question, pas juste un couple de lignes de code. Nous n'avons pas de temps à perdre, de deviner ce que vous pouvez ou ne l'ont pas fait.

OriginalL'auteur Pith | 2013-04-21