String vers LocalDate dans l'API Java 8
Bonjour,
d'abord quelque chose qui fonctionne : si je fais
Code:
1 2 3 4 5 6 7 8 9 10
| String myDayString = "18 05 2014";
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MM yyyy");
LocalDate myDayLocalDate = LocalDate.parse(myDayString, formatter);
System.out.printf("Successfully parsed String %s, date is %s%n", myDayString, myDayLocalDate);
} catch (DateTimeParseException ex) {
System.out.printf("%s is not parsable!%n", myDayString);
ex.printStackTrace();
} |
j'obtiens correctement :
Code:
Successfully parsed String 18 05 2014, date is 2014-05-18
Mais bizarrement, si je veux utiliser les représentations littérales des mois, en faisant :
Code:
1 2 3 4 5 6 7 8 9 10
| String myDayString = "18 Mar 2014";
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy");
LocalDate myDayLocalDate = LocalDate.parse(myDayString, formatter);
System.out.printf("Successfully parsed String %s, date is %s%n", myDayString, myDayLocalDate);
} catch (DateTimeParseException ex) {
System.out.printf("%s is not parsable!%n", myDayString);
ex.printStackTrace();
} |
Il me vient :
Code:
1 2 3 4 5 6
| 18 Mar 2014 is not parsable!
java.time.format.DateTimeParseException: Text '18 Mar 2014' could not be parsed at index 3
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
at java.time.LocalDate.parse(LocalDate.java:400)
... |
Pourquoi donc ?