Ich versuche LocaDate
von Format zu bekommen, so dass ich diese Funktion nahm das Datum erhalten und für Format suchen, um zu analysieren:Scala wie LOCALDATE zu erhalten, indem Muster
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
}
Verbrauch:
var s1 = "01/08/2010"
getLocalDate(s1)
Aber bekamen ein Fehler:
java.time.format.DateTimeParseException: Text '01/08/2010' could not be parsed at index 0
Und ich weiß nicht, warum und was schief geht.
Ich weiß nicht scala, aber es scheint, dass Sie jeden LocalDate.parse-Aufruf in einem try Block umbrechen müssen. –
Ich nehme an, dass Ihr Beispieldatum "01/08/2010" mit Muster 4 übereinstimmen sollte, aber es verwendet Großbuchstaben 'YYYY' anstelle von' yyyy'. – devkat
Gleicher Fehler mit YYYY oder yyyy –