我正在将一些日期格式从"ddMMMyyyy"
转换为"yyyy-MM-dd"
。我编写了以下代码:
import org.joda.time.DateTime
import org.joda.time.format.DateTimeFormat
import scala.util.{Failure, Success, Try}
def dateFormatter(date: String, inpuFormat: String, outputFormat: String): String = {
var returnDate: String = ""
val inputDateFormat = DateTimeFormat.forPattern(inpuFormat)
val outputDateFormat = DateTimeFormat.forPattern(outputFormat)
Try {
if (date != null && date.trim != "") {
val parsedDate = DateTime.parse(date.trim(), inputDateFormat)
returnDate = outputDateFormat.print(parsedDate)
} else { returnDate = null }
} match {
case Success(_) => { returnDate }
case Failure(e) => {
println("exception!" + e)
date
}
}
}
我用的是scala 2.12
如果作为输入传递:
"09September2032"
然后我得到
"2032-09-09"
不过,如果我通过了
"09sep2032"
我得到了以下异常:
java.lang.IllegalArgumentException: Invalid format: "09sep2032" is malformed at "sep2032"
提供的模式有什么问题?
1条答案
按热度按时间bvhaajcl1#
似乎对于九月,我们需要传递4个字符Sept
将输出: