Bonjour,
d'abord quelque chose qui fonctionne : si je fais
j'obtiens correctement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Mais bizarrement, si je veux utiliser les représentations littérales des mois, en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Successfully parsed String 18 05 2014, date is 2014-05-18
Il me vient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Pourquoi donc ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ...
Partager