J'essaie d'obtenir LocaDate
par le format donc je pris cette fonction qui reçoivent la date et la recherche pour le format pour analyser:Scala comment obtenir LocalDate par modèle
def getLocalDate(date: String): LocalDate = {
val pattern1 = DateTimeFormatter.ofPattern("dd MMM, yyyy")
val pattern2 = DateTimeFormatter.ofPattern("dd MMM yyyy")
val pattern3 = DateTimeFormatter.ofPattern("yyyy-MMM-dd")
val pattern4 = DateTimeFormatter.ofPattern("dd/MM/YYYY")
val pattern5 = DateTimeFormatter.ISO_LOCAL_DATE
val result = Try {
LocalDate.parse(date, pattern1)
} recover {
case _ => LocalDate.parse(date, pattern2)
} recover {
case _ => LocalDate.parse(date, pattern3)
} recover {
case _ => LocalDate.parse(date, pattern4)
} recover {
case _ => LocalDate.parse(date, pattern5)
}
result.get
}
Utilisation:
var s1 = "01/08/2010"
getLocalDate(s1)
Mais a une erreur:
java.time.format.DateTimeParseException: Text '01/08/2010' could not be parsed at index 0
Et je ne sais pas pourquoi et ce qui ne va pas.
Je ne sais pas scala mais il semble que vous deviez encapsuler chaque appel LocalDate.parse dans un bloc try. –
Je suppose que votre exemple de date "01/08/2010" doit correspondre au motif 4, mais il utilise majuscule "YYYY" au lieu de "yyyy". – devkat
Même erreur avec YYYY ou aaaa –