2015-09-15 72 views
-4

我正在一個應用程序中工作,我必須在控制器中發送一些日期,但是如果我發送日期空白,它將獲得不可解析的日期異常,那麼日期選擇器中的日期格式爲2015 -09-02,並在控制器我做如何在java中解析無法解析的日期

java.text.DateFormat outputFormat1 =new java.text.SimpleDateFormat("yyyy-MM-dd"); 
java.text.DateFormat outputFormat2 =new java.text.SimpleDateFormat("dd MMMM yyyy"); 
interviewPhoneorOnsiteDate = outputFormat2.format(outputFormat1.parse(interviewDate)); 

此代碼我使用按照我的格式

,我獲取日期的方式來解析日期是

String interviewDate = ParamUtil.getString(uploadRequest, "start-date");  

但是當日期字段爲空的例外是發生,請人幫助

這是例外

Caused by: java.text.ParseException: Unparseable date: "" 
at java.text.DateFormat.parse(Unknown Source) 
at com.msh.InterviewScheduleController.insertCandidateDetails(InterviewScheduleController.java:502) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:148) 
... 134 more 

實際的問題是在這條線

Date interviewDateAdded = formatter.parse(dateInString); 

當它是空它可以不解析

+2

'如果(interviewDate.equals( 「」)){...}'或者類似的東西?另一個想法是'try {...} catch(...){...}'。請展示自我研究的最小努力。 –

+2

你爲什麼不使用try/catch? – vincent

+0

嗯但是我要問的是什麼問題 – lucifer

回答

0

只用ParseException拋出DateFormat.parse()API

ParseException - 如果指定字符串的開頭無法解析。

try {  
    java.text.DateFormat outputFormat1 =new java.text.SimpleDateFormat("yyyy-MM-dd"); 
    java.text.DateFormat outputFormat2 =new java.text.SimpleDateFormat("dd MMMM yyyy"); 
    interviewPhoneorOnsiteDate = outputFormat2.format(outputFormat1.parse(interviewDate)); 
} catch (ParseException ex) { 
    // do action if date cannot be parsed 
    // return error unvalid date or what you need 
} 
+0

我已經添加了這個異常,請參閱 – lucifer

+0

這正是我的代碼所做的,捕獲ParseException,如果日期不能被解析,默認情況下只給'interviewPhoneorOnsiteDate'值。 –

+0

我必須vilidate窗體的日期不能爲空,所以我不能給予默認的格式,如果日期是空白的,我必須運行一些味精,那爲什麼我檢查 – lucifer