La conversion de la chaîne en millisecondes

Je veux calculer la différence de temps entre deux dates (dans le format "aaaammjjhhmmss"). L'idée de base est d'abord convertir la chaîne de caractères date en millisecondes, puis obtenir la différence de temps.

Calendar c1 = Calendar.getInstance();
c1.setTime(new SimpleDateFormat("yyyyMMddHHmmss").parse("20110327032913"));
System.out.println(c1.getTimeInMillis());
Calendar c2 = Calendar.getInstance();
c2.setTime(new SimpleDateFormat("yyyyMMddHHmmss").parse("20110327025913"));     
System.out.println(c2.getTimeInMillis());

Résultat:

1301189353000

1301191153000

Évidemment, la première date est postérieure à la seconde, mais sa converti à la milliseconde est plus petit. Je n'ai commis aucune erreur sur format?

Il fonctionne très bien pour moi, l'impression 1301221753000 et 1301219953000. Quel fuseau horaire/locale exécutez-vous?
Avec mon code à exécuter la première valeur est supérieur à la seconde.
Il n'y a pas de problème avec ton code, c'est l'impression de quelque chose de correct: ideone.com/EIS1wI
Ma conjecture est qu'un fuseau horaire changement a eu lieu dans votre système de paramètres régionaux par défaut, similaire à cette question.
Oui, les fuseaux horaires, les changements sont fréquents sur Mars 27, 2011, dans de nombreux pays, voir ce lien

OriginalL'auteur user2177467 | 2013-03-16