簡體   English   中英

涉及SimpleDateFormat和Date的ParseException

[英]ParseException involving SimpleDateFormat and Date

我有以下代碼:

SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
java.util.Date sDate = sParse.parse(startDate + " 00:00:00");

startDate的值采用以下格式時,以上方法可以正常工作:“ 23-10-2014”

但是,我的startDate格式為:“ 23/10/2014”,我得到:

java.text.ParseException: Unparseable date: "23/10/2014".

我該如何克服呢?

您正在要求編譯器解析日期dd-MM-yyyy,並且您嘗試發送dd / MM / yyyy,因此很顯然它將引發解析錯誤,如果您不知道輸入的是哪種格式,則可以使用此格式碼

    SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
    String startDate="23/10/2014".replace("/", "-");
    java.util.Date sDate = sParse.parse(startDate+ " 00:00:00");
    System.out.println(sDate); 

對於這兩種日期格式,您都可以傳遞以獲取輸出23/10/2014或23-10-2014

使用代碼SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss"); 您告訴解析器期望日期格式為2014年10月23日(以-分隔),因此顯然它不會解析“ 2014年10月23日”,因此您需要將格式字符串指定為dd/MM/yyyy

理想情況下,您不需要在startDate字符串中添加“ 00:00:00”。 由於要在日期字符串中獲取小時,分鍾秒值,因此默認值為0。您可以從模式中刪除“ hh:mm:ss”。

SimpleDateFormat sParse = new SimpleDateFormat(“ dd-MM-yyyy hh:mm:ss”); java.util.Date sDate = sParse.parse(startDate +“ 00:00:00”);

因此,如上面的答案中所述,您可以簡單地執行以下操作:

 SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy");
    String startDate="23/10/2014".replace("/", "-");
    java.util.Date sDate = sParse.parse(startDate);
    System.out.println(sDate); 

暫無
暫無

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

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