Exception SimpleDateFormat sur l’atsortingbution de la valeur false à lenient

Pourquoi ce code jette-t-il une exception de date imparable?

SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.000Z'"); f.setLenient(false); Ssortingng dateStr = "2012-03-11T02:46:01.000Z"; f.parse(dateStr); 

Cela fonctionne bien quand clément est vrai. Cela fonctionne étrangement pour la date de saisie ‘ 2012-03-01T02: 46: 01.000Z ‘ même avec indulgence comme faux. Fuseau horaire par défaut utilisé: PST

Parce que cette heure n’existe pas dans votre fuseau horaire par défaut, c’est le jour, heure avancée, et l’heure est passée de 2h00 à 3h00. : P

Puisque vous parsingz UTC, définissez le fuseau horaire de l’instance SimpleDateFormat sur UTC comme suit:

 f.setTimeZone(TimeZone.getTimeZone("UTC")); 

et votre problème partira.