Comment puis-je convertir une chaîne en un LocalDate
?
J'ai vu des exemples comme:
LocalDate dt = new LocalDate("2005-11-12");
Mais mes cordes sont comme:
2005-nov-12
Lorsque vous utilisez Joda Time, vous devez utiliser DateTimeFormatter
:
final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
final LocalDate dt = dtf.parseLocalDate(yourinput);
Si vous utilisez Java 8 ou une version ultérieure, reportez-vous à la réponse de hertzi
java.time
Depuis Java 1.8, vous pouvez y parvenir sans bibliothèque supplémentaire en utilisant les classes java.time . Voir le didacticiel .
La syntaxe est cependant presque la même.
la source
Vous devrez peut-être passer de DateTime à LocalDate.
Utilisation de Joda Time:
la source
Le formatage Datetime est effectué par le
org.joda.time.format.DateTimeFormatter class
. Trois classes fournissent des méthodes d'usine pour créer des formateurs , et celle-ci en est une. Les autres sontISODateTimeFormat
etDateTimeFormatterBuilder
.final org.joda.time.LocalDate class
est une classe datetime immuable représentant une date sans fuseau horaire .LocalDate
est thread-safe et immuable , à condition que la chronologie le soit également. Toutes les classes de chronologie standard fournies sont thread-safe et immuables.la source
DateTimeFormatter
a des formats intégrés qui peuvent être directement utilisés pour analyser une séquence de caractères. Il est sensible à la casse, Nov fonctionnera, mais nov et NOV ne fonctionneront pas:DateTimeFormatterBuilder
fournit un moyen personnalisé de créer un formateur. Il est insensible à la casse, les novembre, novembre et novembre seront traités de la même manière.la source