私は奇妙な問題に直面しました。私はLocalDateにString値を解析できません。問題は、実行時に評価式ツールでブレークポイントを一時停止して解析を実行していることです。しかし、私は、アプリケーションを継続し、私は次の節で例外を取得:JavaでStringからLocalDateを正しく解析する方法は?
によって引き起こさ:java.time.format.DateTimeParseException:テキストは、「-218906870-0-9088-15635」インデックス11 で解析できませんでした(DateTimeFormatter.java:1851) のjava.time.LocalDate.parse(LocalDate.java:400)でのjava.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) のjava.time.format.DateTimeFormatter.parseもっとcom.library.controller.CrudController.returnBookで) (CrudController.java:96) ... 55
私のコードはここにあります
LocalDate date = returnDatePicker.getValue();
Journal item = (Journal) tableView.getSelectionModel().getSelectedItem();
if(date != null && item != null) {
LocalDate itemDate = LocalDate.parse(item.getStartDate().toString());
if (date.isAfter(itemDate)) {
journalDao.saveOrUpdate(item.withReturnDate(date));
returnPanel.setDisable(true);
fillJournal();
}
}
文字列値の日付は "2017-12-30"のように見えます。 いくつかのスクリーンショット:
どうすれば可能ですか?評価版で動作し、実行時には動作しません。 私はいくつかのヒントを教えていただければ幸いです。
LocalDate.parse()、正常に動作する「-218906870-0-9088-15635」どこかということは明らかですあなたはそれを日付として解析しようとしています。それが例外を投げる理由です。 – prsvr
@GCPこれは、行LocalDate itemDate = LocalDate.parse(item.getStartDate()。toString())で例外をスローします。 メソッドの解析をデバッグし、解析中に例外がスローされることがわかりました。しかし、私は理解できません。評価式ツールでは例外をスローしないのはなぜですか? –
'item.getStartDate()'が返す値がわからないときは、その型を知らなくても、目がくらんでいるとしか推測できません。あなたは[最小限の、完全で、かつ証明可能な例を作成してください](https://stackoverflow.com/help/mcve)できますか? –