2012-07-24 44 views
3

Date对象,我需要下面的字符串解析成日期对象的Java:字符串转换为Java中

String time = "Jul 24 2012 05:19:34"; 
DateFormat df = new SimpleDateFormat("MM dd yyyy HH:mm:ss"); 
Date date = df.parse(time); 

代码抛出此异常:

Unparseable date: "Jul 24 2012 05:19:34" 

有谁知道如何解决这个?

回答

6

让它

DateFormat df = new SimpleDateFormat("MMM dd yyyy HH:mm:ss"); 

注:MMM

+0

完全真棒! – user1467855 2012-07-24 05:27:15

+0

我必须等12分钟才能接受您的答案。我不知道为什么。 – user1467855 2012-07-24 05:27:50

+0

@ user1467855因此,您可以查看所有答案并接受最好的答案。 – amicngh 2012-07-24 05:30:56

2

格式字符串应该是 - "MMM dd yyyy HH:mm:ss"

+0

加一个答案 – user1467855 2012-07-24 05:42:15

1

的Date.parse方法已过时,但是仍然会工作得很好:

Date d = new Date(Date.parse(time)); 
    System.out.println(d); 

但是,如果你想继续你的方法,在你的格式的MM部分中添加一个M(现在是MMM)

+0

他为什么要切换到不推荐的方法?他使用的是完美的工作,他只需要改变格式字符串中的一个字符。 – jahroy 2012-07-24 05:30:55

+0

加一个答案 – user1467855 2012-07-24 05:41:50

1

格式应该是 - “MMM dd yyyy HH:mm:ss”而不是“MM dd yyyy HH:mm:ss”。 您可以参考docs。马克分钟毫米和月MMM的区别

2

“MMM”使用于前三个字母的字母表越来越月份名称 “MM”使用了得到一年的月数

字符串时间=“2012年7月24日五时19分34" 秒;

格式格式化=新的SimpleDateFormat( “MMM DD YYYY HH:MM:SS”); //返回MMM七月

格式化=新的SimpleDateFormat( “MM”); // MM return 07