簡體   English   中英

解析數據時拋出異常

[英]Exception thrown when parsing data

抱歉,如果這是一個菜鳥問題,但我有以下問題:每次我嘗試將字符串解析為具有特定格式 (ddMMyyy) 的LocalDate類型時,我都會收到以下消息:

Exception in thread "main" java.time.format.DateTimeParseException: Text '06071994' could not be parsed at index 2
    at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2046)
    at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1948)
    at java.base/java.time.LocalDate.parse(LocalDate.java:428)
    at jujj.main(jujj.java:7)

Process finished with exit code 1

起初我想也許我在代碼的不同部分做錯了什么,我試圖隔離我正在解析的部分來測試它,但沒有運氣。 這是測試代碼:

String in = "06071994";
DateTimeFormatter format = DateTimeFormatter.ofPattern ( "dd MM yyyy" );
LocalDate BirthDay = LocalDate.parse ( in, format );
System.out.println ( in );

后來編輯:我嘗試了不同的格式:“dd/MM/yyyy”、“dd-MM-yyyy”、“ddMMyyyy”,它們仍然不起作用。

顯然,您的模式與您的字符串不匹配。

您的字符串不包含空格,而您的模式包含空格。

您的字符串包含兩位數的月份,而您的模式需要月份名稱的三個字母縮寫。

試試下面的代碼:

String in = "06071994";
DateTimeFormatter format = DateTimeFormatter.ofPattern ( "ddMMyyyy" );
LocalDate BirthDay = LocalDate.parse ( in, format );
System.out.println ( BirthDay );

class DateTimeFormatterjavadoc中詳細說明了所有有效模式

import java.text.ParseException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class FormatDate {

public static void main(String... args) throws ParseException {
    String in = "06071994";
    DateTimeFormatter format = DateTimeFormatter.ofPattern("ddMMyyyy");
    LocalDate BirthDay = LocalDate.parse(in, format);
    System.out.println(BirthDay);
  }
}

編輯1 :代碼的問題是輸入格式為ddMMyyyy(06071994),格式為dd MM yyyy (應該是ddMMyyyy)。 所以現在解析器看到要解析的輸入和格式不一樣,因此它會拋出錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM