请参阅此功能,将String
转换为LocalDate
:
def getLocalDate(date: String): LocalDate = {
LocalDate.parse(date, format.DateTimeFormatter.ofPattern("dd MMM, yyyy"))
}
用法:
val date = "01 Jan, 2010"
val localDate = getLocalDate(date)
所以如果我有不同格式的日期:
val date = "01 Jan, 2010"
是否可以启用我的功能以支持多种格式而不仅支持1?
答案 0 :(得分:1)
考虑使用parse
scala.util.Try
def getLocalDate(date: String): LocalDate = {
val pattern1 = DateTimeFormatter.ofPattern("dd MMM, yyyy")
val pattern2 = DateTimeFormatter.ofPattern("dd MMM yyyy")
val pattern3 = DateTimeFormatter.ISO_LOCAL_DATE
val result = Try {
LocalDate.parse(date, pattern1)
} recover {
case _ => LocalDate.parse(date, pattern2)
} recover {
case _ => LocalDate.parse(date, pattern3)
}
result.get
}
无法解析字符串时, parse
抛出DateTimeParseException
。人们可以抓住它并再次尝试另一种模式。
每个步骤返回后的值是成功还是失败。如果成功,则忽略恢复。
最后致电get
以返回LocalDate
中包含的Success
或重新抛出Failure
捕获的异常。