Java : DateTimeParseException (日付・時刻の解析例外) - API使用例
DateTimeParseException (Java SE 21 & JDK 21) の使い方まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。
概要
DateTimeParseException は、日付・時刻の解析に失敗したときに発生する非チェック例外です。
例えば、文字列を日付や時刻に変換しようとして失敗したときに発生します。
System.out.println("-- OK --");
final var date1 = LocalDate.parse("2100-12-31");
System.out.println("date : " + date1);
System.out.println("-- NG --");
try {
final var date2 = LocalDate.parse("2100-12-40");
} catch (DateTimeParseException e) {
System.out.println("DateTimeParseException! : " + e.getMessage());
}
// 結果
// ↓
//-- OK --
//date : 2100-12-31
//-- NG --
//DateTimeParseException! : Text '2100-12-40' could not be parsed:
// Invalid value for DayOfMonth (valid values 1 - 28/31): 40
コンストラクタ
DateTimeParseException (String message, CharSequence parsedData, int errorIndex)
final var e = new DateTimeParseException("abcd", "2100-12-40", 8);
System.out.println(e); // java.time.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8
DateTimeParseException (String message, CharSequence parsedData, int errorIndex, Throwable cause)
final var cause = new DateTimeException("XYZ");
final var e = new DateTimeParseException("abcd", "2100-12-40", 8, cause);
System.out.println(e); // java.time.format.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8
System.out.println(e.getCause()); // java.time.DateTimeException: XYZ
System.out.println(e.getCause().getMessage()); // XYZ
メソッド
int getErrorIndex ()
final var e = new DateTimeParseException("abcd", "2100-12-40", 8);
System.out.println(e); // java.time.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8
String getParsedString ()
final var e = new DateTimeParseException("abcd", "2100-12-40", 8);
System.out.println(e); // java.time.DateTimeParseException: abcd
System.out.println(e.getMessage()); // abcd
System.out.println(e.getParsedString()); // 2100-12-40
System.out.println(e.getErrorIndex()); // 8
Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。
関連記事
- 日付・時刻の基本
- Date, CalendarではなくLocalDateTime, ZonedDateTimeを使おう
- 文字列と日付・時刻の変換
- 日付と時刻、曜日の計算
- 現在時刻(日時)の取得いろいろ
- 現在の曜日(DayOfWeek)を取得
- ZoneIdとZoneOffsetの違い
- API 使用例
- Calendar (カレンダー)
- ChronoLocalDate
- ChronoLocalDateTime
- ChronoZonedDateTime
- Clock (時計)
- Date (日付・時刻)
- DateTimeException (日付・時刻の例外)
- DayOfWeek (曜日)
- Duration (時間の量)
- Era (紀元)
- Instant (時点)
- InstantSource
- JapaneseDate (和暦を使った日付)
- LocalDate (日付・タイムゾーンなし)
- LocalDateTime (日時・タイムゾーンなし)
- LocalTime (時刻・タイムゾーンなし)
- Month (月)
- MonthDay (月・日)
- OffsetDateTime (日時・オフセットあり)
- OffsetTime (時刻・オフセットあり)
- Period (日付の量)
- Temporal
- TemporalAccessor
- TemporalAdjuster (日付・時刻の調整)
- TemporalAdjusters (日付・時刻の調整ユーティリティ)
- TimeZone (タイムゾーン)
- Year (年)
- YearMonth (年・月)
- ZonedDateTime (日時・タイムゾーンあり)
- ZoneId (タイムゾーンID)
- ZoneOffset (タイムゾーン・オフセット)