2013-03-09 133 views
1

我得到解析器異常時,使用簡單的日期格式API解析下面的日期。格式日期使用SimpleDateFormat

String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00"; 
    java.text.SimpleDateFormat dateformate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    effDate = dateformate.parse(inputTimeStamp); 

請幫我解決這個問題。

回答

2

變化

java.text.SimpleDateFormat dateformate= 
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

java.text.SimpleDateFormat dateformate= 
    new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 

您的inputTimeStamp

+0

您的時區失蹤。 – 2013-03-09 07:06:01

0

模式斜槓(/)將是:yyyy/MM/dd HH:mm:ss - z其中Z是一般的時區。 SimpleDateFormat

2

由於您解析的日期格式不同,因此您已將其描述爲SimpleDateFormat。如果effDate的類型爲String,並且應該保存格式化日期,則以下代碼可能會解決該問題,但不應在GMT-08:00之間存在空格。

String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00"; 
SimpleDateFormat inputDateformat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss - z"); 
SimpleDateFormat dateformate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
effDate = dateformate.format(inputDateFormat.parse(inputTimeStamp)); 

我會強烈建議也joda time,尤其是當你想要做的日期計算。

String inputTimeStamp = "2012/07/19 09:49:00 - GMT -08:00"; 
DateTimeFormatter inputDateformat = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss - z Z"); 
DateTimeFormatter dateformate = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); 
effDate = dateformate.print(inputDateFormat.parseDateTime(inputTimeStamp)); 
0

試試這個:

new SimpleDateFormat("yyyy/MM/dd HH:mm:ss - z"); 

this FYR