J'ai un champ d'entrée d'utilisateur et voudrais analyser son rendez-vous, tout ce qu'il met en.
L'utilisateur peut fournir sa date avec un zéro ou sans, donc je veux être capable d'analyser une entrée comme celui-ci
02.05.2019
et aussi ce
2.5.2019
Mais pour autant que je peux dire qu'il n'y a aucun moyen de faire le zéro en option, soit ont toujours 2 chiffres comme 01, 03, 12 et ainsi de suite, ou seulement les chiffres nécessaires comme 1, 3, 12.
Donc, apparemment, je dois décider d'autoriser ou non des zéros non significatifs, mais est-il sérieusement aucun moyen de faire le zéro en option?
Eh bien, je l'ai testé un modèle qui comprenait un zéro dd.MM.uuuu et je l'ai testé un modèle qui ne comprend pas un zéro dMuuuu et quand j'analysé la mauvaise entrée avec les mauvaises exceptions de motif ont été jetés.
Par conséquent, ma question est de savoir s'il y a un moyen de faire le premier zéro en option.
Ceci est trivial lorsque vous le savez. Une lettre de motif, par exemple d
ou M
, acceptera un ou deux chiffres (ou pour l' année jusqu'à 9 chiffres).
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("d.M.u");
System.out.println(LocalDate.parse("02.05.2019", dateFormatter));
System.out.println(LocalDate.parse("3.5.2019", dateFormatter));
System.out.println(LocalDate.parse("4.05.2019", dateFormatter));
System.out.println(LocalDate.parse("06.5.2019", dateFormatter));
System.out.println(LocalDate.parse("15.12.2019", dateFormatter));
Production:
2019-05-02 2019-05-03 2019-05-04 2019-05-06 2019-12-15
Je cherchais cette information dans la documentation et ne trouve pas facilement. Je ne pense pas qu'il est bien documenté.