2015-06-02 50 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) {} 
相关问题