2015-06-02 52 views
-3

我有這段代碼。2010年4月5日,字符串必須在Java中轉換爲日期

String fromDate = "April 5, 2010"; 
DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 
java.util.Date dtt; 
try { 
     dtt = df.parse(fromDate); 
     java.sql.Date ds = new java.sql.Date(dtt.getTime()); 
     System.out.println(ds); 
    } catch (ParseException ex) {} 

但是,這將輸出到

java.text.ParseException: Unparseable date: "April 5, 2010" 
+3

你說你的字符串的格式爲DD/MM/YYYY它顯然沒有。 [這裏](https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html),你可以找到所有可能的格式'字母' – User404

回答

2

你試圖解析與空間寫出來的文字,並使用指定只數和/用於分隔符的格式的逗號格式。嘗試在SimpleDateFormat構造使用這個字符串:"MMM dd, yyyy"

2

在SimpleDateFormat的傳遞的格式必須匹配您輸入的日期。輸入日期 - 「2010年4月5日」,那麼解析輸入日期的格式必須是 「MMM DD,YYYY」

試試這個:

DateFormat df = new SimpleDateFormat("MMM dd, yyyy"); 
+0

請給你的答案添加一些解釋。 – Jayan

+0

在SimpleDateFormat中傳遞的格式必須與您的輸入日期匹配。輸入日期 - 「2010年4月5日」,因此解析輸入日期的格式必須是「MMM dd,yyyy」 – Arjit

+0

在回答中提供更多詳細信息很有用。這可以幫助訪問者和評論者。我將你的評論複製到答案中 - 一個例子。 – Jayan

1

fromDate(2010年4月5日)是不在dd/MM/yyyy格式。

如果您改變formDate從 -

String fromDate = "April 5, 2010"; 

到 -

String fromDate = "5-April-10; 

然後你可以用下面的代碼片段 -

String fromDate = "5-April-10"; 

formatter = new SimpleDateFormat("dd-MMMM-yy"); 
convertedDate = (Date) formatter.parse(fromDate); 

System.out.println("Converted Date: " +convertedDate); 
2

您將無法使用不同格式的DateFormat解析日期。您應該使用SimpleDateFormat並指定表示您正在解析的格式字符串。

DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy"); 
Date formatted = formatter.parse(fromDate); 
//Whatever you need to do 
0

希望下面的代碼可以幫助

String fromDate = "April 5, 2010"; 
     DateFormat df = new SimpleDateFormat("MMM dd, yyyy"); 
     java.util.Date dtt; 
     try { 
       dtt = (Date)df.parse(fromDate); 
       java.sql.Date ds = new java.sql.Date(dtt.getTime()); 
       System.out.println(ds); 
       System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(ds)); 
      } catch (ParseException ex) {} 
相關問題