2013-08-27 55 views
0
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class DateExample { 

public static SimpleDateFormat TIMEZONE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); 

private static final SimpleDateFormat[] DATE_FORMATS = 
{ 
    new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa"), 
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"), 
    new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"), 
    TIMEZONE_DATE_FORMAT, 
}; 

public static void main(String[] args){ 

    for(SimpleDateFormat format : DATE_FORMATS){ 

     try { 
      Date date = format.parse("1377154948450"); 
      System.out.println("Date: "+ date.toString()); 

     } catch (Exception e) {e.printStackTrace();} 
    } 
} 

} 

現在解析方法中的字符串值是從方法調用中獲得的,我無法改變它。運行此代碼時出現異常通過SimpleDateFormat解析字符串值時得到錯誤.parse()

java.text.ParseException: Unparseable date: "1377154948450" 
    at java.text.DateFormat.parse(DateFormat.java:337) 
+1

這個問題會更適合左右。代碼審查是關於找到「最好」的方式來做事,而不是排除錯誤。 – Jamie

+1

你的錯誤幾乎告訴它。 '無法解析的日期'。所以試着給出一個適當的日期字符串格式。 –

+2

它看起來像你試圖從一個時間戳創建一個Date對象,你可以使用新的Date(1377154948450) - 記下long值,而不是String。轉換爲格式化字符串時,SimpleDateFormat可以工作。同意這是錯誤的論壇,但。 – JohnMark13

回答

1

引發異常是因爲您的格式都不匹配字符串。

您可以嘗試

Date date = new Date(Long.parseLong("1377154948450"));