0
文字列から曜日を取得しようとしているときに、文字列が定義済みの形式に対応していてもエラーが発生することがあります。以下は 日付文字列の解析:正しくフォーマットされた文字列の一部がエラーを返します
val dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
def getDayOfWeek(date: String): Int = {
val stringToParse = date.substring(0, 19)
try {
val now = Calendar.getInstance()
now.setTime(dateFormat.parse(stringToParse))
println("Correct time string: " + stringToParse)
now.get(Calendar.DAY_OF_WEEK)
} catch {
case _: Throwable => println("Wrong time string: " + stringToParse)
-1
}
}
が成功/失敗し、解析された文字列の例です::以下
は、文字列とフォーマット定義を解析するために使用される機能です
Correct time string: 2017-01-01 04:00:00
Wrong time string: 2017-05-04 15:00:00
Correct time string: 2017-01-01 04:00:00
Correct time string: 2017-06-13 07:00:00
Correct time string: 2017-05-04 15:00:00
Correct time string: 2017-01-01 04:00:00
Correct time string: 2017-01-01 04:00:00
Correct time string: 2017-01-01 04:00:00
Correct time string: 2017-01-01 04:00:00
Correct time string: 2017-05-04 15:00:00
Correct time string: 2017-06-13 07:00:00
Correct time string: 2017-05-04 15:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-06-13 07:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-06-13 07:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-01-01 05:00:00
Wrong time string: 2017-06-13 07:00:00
Correct time string: 2017-01-01 05:00:00
Correct time string: 2017-05-04 16:00:00
Correct time string: 2017-05-04 16:00:00
は、誰もが引き起こす可能性があるものを知っています上記の場合のエラー?成功例と失敗例の間には違いはありません。
ありがとうございます!
おそらく、例外のエラーメッセージを印刷すると、エラーをより具体的に特定するのに役立ちます。 – stefanobaghino
"2017-06-13 07:00:00"と正しく間違って解析しているので、私は@stefanobaghinoしかサポートできません。 – Luftbaum
アドバイスのもう一つの言葉:「Throwable」をキャッチすることは一般的にはお勧めできません。 'NonFatal'エクストラクタを調べたいと思うかもしれません。http://www.scala-lang.org/api/2.11.8/index.html#scala.util.control.NonFatal$ – stefanobaghino