parseBestメソッドの動作について少し混乱しています。 私はフォーマッタのパターンを持っているし、次のように私はparseBest方法で日付を解析しています:DateTimeFormatter parseBest()は「インデックス8で例外を解析できませんでした。」
DateTimeFormatter parser = DateTimeFormatter.ofPattern("yyyy-MM-dd['T'HH:mm:ss[Z]]");
parseMyDate(parser, "2016-12-07");
parseMyDate(parser, "2016-12-07T15:31:12");
parseMyDate(parser, "2016-12-07T15:31:12-0500");
parseMyDate(parser, "2016-12-07Hello");
public static void parseMyDate(DateTimeFormatter formatter, String parseText) {
try {
TemporalAccessor ta = formatter.parseBest(parseText,
OffsetDateTime::from,
LocalDateTime::from,
LocalDate::from);
if (ta instanceof OffsetDateTime) {
OffsetDateTime odt = OffsetDateTime.from(ta);
System.out.println("OffsetDateTime: " + odt);
} else if (ta instanceof LocalDateTime) {
LocalDateTime ldt = LocalDateTime.from(ta);
System.out.println("LocalDateTime: " + ldt);
} else if (ta instanceof LocalDate) {
LocalDate ld = LocalDate.from(ta);
System.out.println("LocalDate: " + ld);
} else {
System.out.println("Parsing returned: " + ta);
}
} catch (DateTimeParseException e) {
System.out.println("Here in Exception : "+e.getMessage());
//e.printStackTrace();
}
}
しかし、次のようにメソッド呼び出しのためのすべてのために、私は同じ例外が発生しました:
java.timeを.format.DateTimeParseException:テキスト '2016-12-07Hello'をインデックス8で解析できませんでした。 at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) at java.time.format.DateTimeFormatter.parseBest DateTimeFormatter.java:1897) at com.my.j8.DataTime.parseStr(DataTime.java:164)com.my.j8.DataTime.main(DataTime.java:158)
で私は次のようにパターンを変更しようとした: てDateTimeFormatterパーサ= DateTimeFormatter.ofPattern( "YYYY-MM-DD")。
まだ運がありません。なにか提案を?
投票しても、このコードは質問を削除しない方が、良い/優れた構文解析をするのに役立つかもしれません。 – KayV