[英]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.